2 qq 24328629 qq_24328629 于 2014.12.08 13:51 提问

程序问题,不知道为什么没有输出,求解,帮帮忙
c++

#include
int main()
{
int slen(char x[],int n);
int s ; char a[10];
printf("输入你的字符:\n");
gets (a);
s=slen(a,10);
printf("字符长度是=%d\n",s);
return 0;
}
int slen(char x[],int n)
{int i,j=0,m=n;
for(i=0;i<m;i++)
while(x[i]!='\0')
{j++;}
return(j);

}

4个回答

xuzuning
xuzuning   Ds   Rxr 2014.12.08 15:17
已采纳
 int slen(char x[],int n) {
   int i,j=0,m=n;
   for(i=0;i<m;i++)
     if(x[i]!='\0') { j++; }
   return(j);
}
qq_24328629
qq_24328629 非常谢谢
大约 3 年之前 回复
qq_24328629
qq_24328629 非常谢谢
大约 3 年之前 回复
tongyi78945
tongyi78945   2014.12.08 14:14

slen函数中,while部分进去后就是个死循环。改为下面即可
for(i = 0; i < m && x[i] != '\0';i++)
j++;

tongyi78945
tongyi78945 不客气!
大约 3 年之前 回复
qq_24328629
qq_24328629 非常谢谢
大约 3 年之前 回复
yuanhao113
yuanhao113   2014.12.08 14:39

你的slen函数里面for(i=0;i<m;i++)
while(x[i]!='\0')
{j++;}是你漏括号了还是怎么,for和while用一个就行了!

qq_24328629
qq_24328629 非常谢谢
大约 3 年之前 回复
stafniejay
stafniejay   2014.12.08 22:14

int slen(char x[])
{
int j = 0;
while(x[j++]!='\0');
return j-1;

}
int main()
{
int s ; char a[10];
printf("输入你的字符:\n");
gets (a);
aa:
s=slen(a);
printf("字符长度是=%d\n",s);
gets (a);
goto aa;
return 0;
}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!