int x=0,n=0;
scanf("%d",&x);
int t=x;
do{
x%=10;
n++;
}while(x>0);
printf("%d是%d位数\n",t,n);
为什么输入x后按回车没反应呢
你漏了个x/=10啊
x的值一直不变直接死循环
x%=10;改为 x/=10;
如果个位数不是0,那么x%10一直是这个个位数,代码就死循环了
假如x 为22
x%10 为2,while 成立,这个时候x 没变,还是22,死循环了
把x%10 改成x/10 即可
将%换成整除/,求余达不到算位数的效果
因为你的循环是个死循环,比如我输入x=11,取余10之后就是1,然后x永远大于0,就不能退出循环输出数据了