为什么结果是3而不是2

来源:百度知道 编辑:UC知道 时间:2024/06/15 18:23:35
#include <stdio.h>
main()

{int a=5,b=4,c=3,d=2;
if(a>b>c) printf("%d\n",d);
else if((c-1>=d)==1) printf("%d\n",d+1);
else printf("%d\n",d+2);
}

a>b>c这个表达式要这样理解:a>b为真,结果是1,1>c为假,结果是0

if(a>b>c)中,先执行 a>b得到结果为true(大部份系统中把真等价为1),因此此时a>b>c就变为了1>c,这个比较的结果是false....故第一个printf得不到执行。。。
按同样的道理分析if((c-1>=d)==1),,这个条件比较的结果是true,因此执行后面的printf("%d\n",d+1); 结果当然为3了

0,wo cuo le

如果 a大于b大于 就d就取2 5》4》3 所以d=2 结果就是2+1=3