这个程序为什么输出来是3,不应该是2吗?
这个程序为什么输出来是3,不应该是2吗?求大神解释一下#include<stdio.h>
main()
{
int a=5,b=4,c=3,d=2;
if(a>b>c)
printf("%d",d);
else if((c-1>=d)==1)
printf("%d\n",d+1);
else
printf("%d\n",d+2);
}
#include<stdio.h> main() { int a=5,b=4,c=3,d=2; if(a>b>c) //a>b>c等价于(a>b)>c,a>b是真,所以(a>b)=1,而1>c为假,所以第一个printf()不执行,执行下面的else if printf("%d",d); else if((c-1>=d)==1) //c-1=2,2>=2=d为真,所以(c-1>=d)=1,1==1为真,所以这个if可以执行,下面的printf()得到执行,下面的else就不再执行. printf("%d\n",d+1); else printf("%d\n",d+2); }