C语言求助3

main()
{int n=12345,d;
while(n!=0) {d=n%10; printf("%d,d); n/=10;}

输出结果是什么。要详细过程。

第1个回答  2009-03-08
结果:
---------------
54321
----------------
过程:
首先n=12345符合n!=0的循环条件,进入循环体
执行d=n%10,即n除以10取余为5赋给d,
此时d=5,执行printf("%d",d)语句,即打印d的值5
n/=10即n=n/10 此时n=1234;

符合循环条件n!=0,执行第二遍循环:
执行d=n%10,此时n=1234即n除以10取余为4赋给d,
此时d=4,执行printf("%d",d)语句,即打印d的值4
n/=10即n=n/10 此时n=123;

符合循环条件n!=0,执行第三遍循环:
执行d=n%10,此时n=123即n除以10取余为3赋给d,
此时d=3,执行printf("%d",d)语句,即打印d的值3
n/=10即n=n/10 此时n=12;

符合循环条件n!=0,执行第四遍循环:
执行d=n%10,此时n=12即n除以10取余为2赋给d,
此时d=2,执行printf("%d",d)语句,即打印d的值2
n/=10即n=n/10 此时n=1;

符合循环条件n!=0,执行第五遍循环:
执行d=n%10,此时n=1即n除以10取余为1赋给d,
此时d=1,执行printf("%d",d)语句,即打印d的值1
n/=10即n=n/10 此时n=0;

此时不符合循环条件n!=0,跳出循环
屏幕最终显示:
54321
--------------------------------------------
过程就是这样啦,祝你学习进步^^
第2个回答  2009-03-08
很简单n%10看除以10的商是几,就是看有几位数。
n/=10,就是除以10,就相当于小一位。
每循环一次就小一位,所以输出就是54321了。
第3个回答  2009-03-08
54321
这是经典的reverse问题
n%10是求n除10的余数,然后显示5,n=n/10,也就是1234.5,但因为n是int,所以n变成 1234,以此类推,最后就是54321
第4个回答  2009-03-08
54321
d=n%10是求n的最后一位数,第一次n=12345,故d=5;
n/=10是把n最后一位去掉,以求倒数第二位数,此时n=1234,故下一个d=4,
以此类推
第5个回答  2009-03-08
输出结果如下
54321
当N!=0时,d=12345%10 d=5 n/=10 n=12345/10 n=1234
一直循环下去
d=4 n=123
d=3 n=12
d=2 n=1
d=1 n=0
结束循环本回答被提问者采纳