helenl 发表于 2022-1-5 15:51:25

求助

#include<stdio.h>
int 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);
       return 0;
}
这一个程序,结果为什么是4???

wp231957 发表于 2022-1-5 15:58:44

if(a>b>c)   这玩意在c语言里达不到你想要的效果或者说是错误的语句

helenl 发表于 2022-1-5 16:02:41

wp231957 发表于 2022-1-5 15:58
if(a>b>c)   这玩意在c语言里达不到你想要的效果或者说是错误的语句

好,谢谢您

wp231957 发表于 2022-1-5 16:04:35

helenl 发表于 2022-1-5 16:02
好,谢谢您

if((c-1>d)==1)   这又是啥玩意啊    好另类啊

傻眼貓咪 发表于 2022-1-5 16:12:05

第一个 if 判断:if(a > b > c) // 这和 if(a > b && b > c) 不同
if(5 > 4 > 3)
= if(1 > 3) // 因为 5 > 4 为真,返回 1
= false

第二个 if 判断:if((c - 1 > d) == 1)
if((3 - 1 > 2) == 1)
= if((2 > 2) == 1)
= if(0 == 1) // 因为 2 > 2 为假,返回 0
= false

所以最终运行 else
页: [1]
查看完整版本: 求助