如果输入1,2,3,4程序运行输出的结果是多少?

{char c; int i,k ; k=0;
for(i=0;i<4;i++)
{ while(1)
{c=getchar();
if(c>='0'&&c<='9',break;}
k=k*10+c-'0'; }
printf("%d\n",k); }
请给出解答步骤,谢谢各位大哥大姐,本人新手,希望不吝赐教。

你为什么不自己把这个程序运行一下呢?
然后自己就可以看到结果啊。

输入1 2 3 4
结果是1234。
c=getchar()是让你从键盘输入字符。
由那个for循环知道,会让你输入四个字符。
if(c>='0'&&c<='9')
这句话是判断你输入的是否是数字。如果输入的不是字符的话,就一直让你输入,也就是while循环一直在循环。
如果输入的是0到9的数字话,就通过break语句来跳出while循环。进入到k=k*10+c-'0';这语句。
i=0;
输入1:c='1';符合if语句的条件(是0-9之间的数字),就跳出while循环,计算k:
k=0*10+1=1;(c-'0'=1)

i=1;
输入2;c='2'。符合If语句条件。
k=1*10+2=12;

i=2;
输入3:c='3'符合If语句条件
k=12*10+3=123

I=3;
输入4:c='4'符合if语句条件
k=123*10+4=1234

然后i++之后i=4;这个时候就不符合for循环的条件了,就不会再让你输入了。就跳出for循环。就输出k的值1234了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-07
if(c>='0'&&c<='9');break;}。。