C语言高手们帮帮忙呀

main()
{
char c1,c2;
for(c1='0',c2='9';c1<c2;c1++,c2--);
printf("%c%c",c1,c2);
printf("\n");
}
答案是:54
请解释一下

main() /*主题
{
char c1,c2; /*定义两个变量,C1和C2
for(c1='0',c2='9';c1<c2;c1++,c2--); /*C1的初始值为0,C2的初始值为9如果C1<C2,则C1进行自增,C2进行自减
printf("%c%c",c1,c2); /*输入C1C2的值
printf("\n"); /*输出回车(即换行)
}

明显,首先C1C2从09变成18,接着27,36,45,最后变成54,此时C1的值为5,C2的值为4,不满足C1<C2,不再进行循环,就把这个结果输出,所以输出是54

不过建议你检查一下细小的地方。
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-08-26
FOR语句后面不能加分号
第2个回答  2007-08-26
c1=0,c2=9,c1<c2,所以,c1++,c2--
此时c1=1,c2=8,程序继续循环
c1=2,c2=7
c1=3,c2=6
c1=4,c2=5
c1=5,c2=4
此时c1>c2循环终止,跳出。
答案就是5和4
第3个回答  2007-08-26
因为你在FOR语句后面加了个分号,
所以你的printf("%c%c",c1,c2)是在循环完成后才输出数据,
循环的结果是C1小与C2,即当c1='5',c2='4'时不满足循环条件,
所以最后输出的是'54'了.
第4个回答  2007-08-26
for循环后的分号意味着循环体中内容为空,什么都不做,只是不断在改变循环条件,当循环条件不成立时,执行分号以后的语句
将for后的分号去掉就OK!

C语言啊。。字符串。。麻烦高手们帮下忙。。有点急。速度快点还能多赏点...
include<stdio.h> include<string.h> void main(){ char str[10];while( scanf("%s",str) != EOF)printf("%s\\n",str);} 参考资料:chat

一道C语言问题,请各位高手们帮一下。
2011-05-28 一道C语言编程问题,高手们来看看帮忙解答下 3 2011-01-13 请高手们帮我看看这几道C语言题目的答案是什么? 1 更多类似问题 > c语言的相关知识2011-05-09 c语言写入文件方法 209 2013-10-09 求C语言高手给编程 5 2014-01-11 c语言上机:求程序 5 2008-09-18 二级c语言公共基础知识占...

怎样把c语言学好呀?完全不懂,就是一个菜鸟,请高手们给点建议...
最重要的还是自己亲自多动手上机实践!同时还要多动脑思考别人的编程风格,久而久之你就找到了编程的感觉了。你可以找一本比较好的参考书,例如比较有名的谭浩强的书等。

C语言的高手们快进来!帮忙啊
楼上说的对,执行完printf("%c,",b++); b现在是字符'3',然后,你把b-a,首先2个字符不能直接运算,计算机自动转换他们的ASCII,结果是 int类型的数字2,然后%d输出,就是数字2了。

C语言中scanf与gets的疑惑,请高手们帮解决
用%s输入字符串的时候,空格、回车符、tab符作为输入数据的分隔符不能被读入,当遇到这些分隔符的时候,系统认为输入结束。从键盘输入how are you?,实际只是把how输入到了数组,因此,用%s输入字符串的时候不能带有空格、回车符、tab符。而专门的字符输入函数gets就可以输入。当然了,也可以不用gets...

C语言高手们进来帮帮我吧!帮我编一个程序
include<string.h> int choose();int shutdown();void main(){ system("color 0b");char admin[100]="abc";char secret[100]="123";char nadmin[100]={0};char nsecret[100]={0};do { printf("\\n");printf("\\n");printf("\\n");printf("\\n");printf("\\n");printf("\\n"...

一道c语言问题,请各位高手们帮帮忙,谢谢
char p[][20]={“get”,”put”,”out”};p是一个有3个元素的数组,数组中的每个元素都是一个char[20]类型的数组。也就是说,p是一个二维数组。strlen(p[0])+strlen(p[1])+ strlen(p[2])即计算p中的三个字符串的长度总和,为3+3+3=9。

C语言程序设计 编程,我是C语言初学者,请高手们帮我为下面这道题编个程 ...
if(c == 'a'){ printf("你是本校全日制学生,不收付费 ^_^\\n");} if(c == 'b'){ printf("本校夜大学生,你的要选修的学分\\n");scanf("%d", &x);if(x <= 12){ printf("本校夜大学生,你的学费是200元\\n");} else { printf("本校夜大学生,你的学费是%d元\\n", 200+...

c语言在线答疑,求高人指导~~~谢谢了~~~
第五个:这个是函数的递归调用。第一次输入a,并递归到下一层输入b,再递归到下一层输入 条件符合退出递归,输出当前层的c,即#,退回上一层输出当前c,即b,再退回上一层输出当前c,即a。这就是ab##ba。第六个:这个是由于define中的M+M没有加()。表达式经编译器编译后就是M+M*M+M*5...

请c语言高手们赐教:什么时候应注意函数实参河和形参的单向传递问题_百 ...
C语言中有两种传递方式,一个是值传递,另一个是地址(指针)传递。值传递就是单向传递。它只给从 实参 传递给 形参 ,而形参经过改变后不会传递给实参,对 函数 而言,就是 参数 经过主调用函数传递给了 被调用函数 ,而我们知道,被调用函数除了用return 语句 返回一个值外,其余的值就不可以返回...

相似回答
大家正在搜