关于C语言中类似"a<b<c"条件的值

来源:互联网 发布:恶搞配音软件 编辑:程序博客网 时间:2024/05/18 11:45

想起上学期在百度上回答的一个C语言问题,如下

————————————————————————————————————


#include "stdio.h"main(){     int a=1,b=2, c=3, t;    while (a<b<c)     {      t=a; a=b; b=t; c--;       }     printf("%d,%d,%d",a,b,c);}


答案是什么?为什么?答案不是2 1 2

—————————————————————————————————————

这是当时我的回答

这个答案应该是121,问题出在while()的循环条件,实际上这个循环执行了两次,括号中a>b>c的实际判断过程是先判断a>b是否为真,若为真则返回1,即(a>b)变成了1,然后再和c比较,若为假则返回0,也就是说比较完a和b后,(a>b)就变成了一个具体数值(1或者0)和c比较。按照这个原理,程序就会循环两次。如果括号里是while(a<b && b<c)这样的话程序会执行一次,答案就变成212
原创粉丝点击