#include"stdio.h"
main()
{int a,b,c,t; a=3;b=2;c=1;
if(a>b>c)
{t=a;a=b;b=t;c--;}
printf("%d,%d,%d\n",a,b,c);
}
您好,if的判断条件这样写是不成立的,所有没有进行{t=a;a=b;b=t;c--;}这些操作,因此答案直接是初始值321
题主应该是想表达 a>b>c ,但代码书写不能这样表达,可写成 if((a>b) && (b > c))
if(a>b>c) :这种写法没问题。但是它是用a>b得出的结果值与c做比较。
a > b得到1
1 > c得到0
C语言里,这里 if(a>b>c) 写法是错误的,所以得出错误的结果。a > b 先被执行得到 1 ,1 > c 得到 0,所以if(0) {}的交换就没有被执行,输出 a b c 就是原来的:3,2,1。
if(a>b>c)这语句为假所以,没有执行这里面的语句,输出还是原来的值。
判断过程:
从左到右判断a>b为真,结果就是1
1>c为假,因为1==1才是真。
假如把后面那个“>”改成“==”,if语句就会真,里面的语句就会被执行。