循环输出
我输入456,结果实在看不懂? 为什么不发代码?#include<stdio.h>
int main()
{
int number,cnt=0,a,i=0;
scanf("%d",&number);
while(number>0)
{
cnt++;
a = number%10;
i ++;
number /= 10;
}
printf("这个数字是%d位数\n",cnt);
for(i=cnt-1;i>=0;i--)
printf("%d",a);
return 0;
}我猜你的代码要实现的意思是这个,你可以参考一下。 你是要输出每个位数上的数字吧?
那么你的a的表达式出错了,应该取余,把尾巴取出来 首先你输入 456 ;
第一轮循环
i = 0;
a = 456/ 10 = 45;
i = 1;
number = 456 / 10 = 45;
第二轮循环
a = 45 / 10 = 4;
i = 2;
number = 45 / 10 = 4;
第三轮循环
a = 4 / 10 = 0;
i = 3;
number = 4 / 10 = 0;
循环结束
可见 i = 3;
3,2,1,0
最大可取到a
所以越界了出现乱码;
页:
[1]