下列程序执行的结果是 a=1;b=2;c=3; while(b<a<c) {t=a;a=b;b=t;c--;} printf( ” %d,%d,%d ” ,a,b,c);

结果是2,1,0
求解释。。

先普及下在c/c++中false即为0,true即为1
b<a<c即(b<a)<c
b<a即2<1,结果为假。。即false(0)
然后b<a的结果和c进行比较.即0<3,结果为真,进到里面的处理不说了,结果变为a=2,b=1,c=2
再进行while里面的判断,同上判断,结果a=1,b=2,c=1
再进行while里面的判断,同上判断,结果a=2,b=1,c=0
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-31
判断b<a 假为0 判断0<c 真 循环条件符合,a,b互换,c-- ; 再去判断while,一直到while为假。既a=1,b=2.c=1时(最初循环3次后),a,b互换,c--;不满足循环条件跳出循环并输出结果。
第2个回答  2012-03-31
程序执行过程是这样的:循环了两次,a、b交换了两次,ab交换后没有变化,而c减了两次,结果变为0.
相似回答