九位以内正常,九位以外仍然显示九位,刚学c不太懂
#include
int main()
{
int a;
int n=1;
printf("输入待判定数字");
scanf("%d",&a);
int total=a/10;
while(total>0){
++n;
total/=10;
}
printf("该数字有%d位\n",n);
return 0;
}
因为int类型存储不了那么大的整数,溢出啦。改为long long 类型吧