为什么结果是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);
}
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