苏联末日文字游戏:C语言问题2

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/28 14:16:17
a=1; b=2; c=2;
while (a<b<c) { t=a; a=b; b=t; c――;}
printf ("%d, %d, %d\n", a, b, c);

答案是1, 2, 0
为什么?

因为a<b 根据逻辑运算结果a<b的结果是1,又因为c=2,所以1<c.
所以while中的值为真,执行下面的句子,执行后a=2,b=1,c=1;
while语句中,a=2,b=1,所以a<b的值为0,0〈c,执行下面的句子。
得a=1,b=2,c=0;此时在执行while语句中的逻辑运算。逻辑运算的值已经为0。所以不再执行while语句
然后输出