C语言while循环问题

来源:百度知道 编辑:UC知道 时间:2024/05/03 01:30:00
main()
{
int a,b,c,t;
a=1;b=2;c=3;
while(b<a<c){t=a;a=b;b=t;c--;}
printf("%d,%d,%d",a,b,c);
getch();
} 为什么输出结果是 2,1,0 不是不满足while的条件吗

满足条件式的。
你没有搞清楚这个表达式的计算过程:
对于b<a<c这个式子,首先计算b<a,为假,也就是0,然后再计算0<C,这个为真,因此就执行了while里面的计算了。
明白了吧。

b<a<c
改成:b<a&&a<c