如何用C语言编这个程序呀?

来源:百度知道 编辑:UC知道 时间:2024/06/03 12:44:26
计算任何一个数是几位数。
我的错在哪里?
main()
{ int m=478309404,c,y=1,n=1,x;
c=m; x=c/10;
while(x!=0)
{
c=x; x=c/x; n++; y=y*10;
}

printf("%d,%d\n",n,y);

}

while循环内部根本没有改变x的值!(从第二次执行循环体后,x的值始终是1),所以这是一个死循环!

修改如下:

main()
{ int m=478309404,c,y=1,n=1,x;
c=m; x=c/10;
while(x!=0)
{
x/=10; n++; y=y*10;
}

printf("%d,%d\n",n,y);

}

你的程序错误很明显,m=478309404这已经超出了int 的范围,int的范围是--32768 32767 longint 是2147483648 到 2147483647。输入的时候注意下

#include"stdio.h"
int main()
{
long int b,c,a=1,n=0;
scanf("%d",&b);
c=b;
while(a)
{
a=c/10;
c=c/10;
n++;
}
printf("\n%d有%d位数字",b,n);
return 0;
}