求大神解答一下这个题的解题过程

下面程序段的运行结果为:Ainta=1,b=2,c=2,t;while(a<b<c){t=a;a=b;b=t;c--;}printf("%d,%d,%d",a,b,c);... 下面程序段的运行结果为:A
int a=1,b=2,c=2,t;
while(a<b<c){t=a;a=b;b=t;c--;}
printf("%d,%d,%d",a,b,c);
A 1,2,0
B 2,1,0
C 1,2,1
D 2,1,1
为什么选A呢?不是第一个while的条件就否定循环了。还是这道题错了?求解释
展开
百度网友aafd356
2013-05-09 · TA获得超过209个赞
知道小有建树答主
回答量:113
采纳率:0%
帮助的人:102万
展开全部
这道题确实选A
首先,第一次循环并没有否定,因为这个循环实际是while((a<b)<c),a=1,b=2,所以a<b为真,即(a<b)=1,而c=2,所以((a<b)<c)是1<2,是成立的,然后进入while循环,循环一次后,a=2,b=1,c=1,t=1,然后再次判断,此时,a<b不成立,所以a<b=0,((a<b)<c)变成0<1,仍然成立,第二次进入循环,循环过后a=1,b=2,c=0,t=2,之后第三次判断,这次是1<0,不成立,跳出循环,输出a,b,c,所以选A
追问
那我如果想要达到a<b<c就要用逻辑与了?
追答
对,程序不能识别这种连续小于的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式