投入就放过 发表于 2022-7-8 22:24:40

C 语言 if语句

#include <stdio.h>

int main(void){
        int a,b;
        scanf("%d %d",&a,&b);
       
        if((a-b>0) || (b-a<0)){
                printf("1\n");
        }
       
        return 0;
}

为什么我输入a=5 b=2 才能打印1 但是我输入 a=2 b=5打印不了1呢? 小白 大佬求解!

临时号 发表于 2022-7-8 22:30:05

当a=5,b=2时:
a-b>0条件成立,因为或只需要一个条件成立就为真,所以表达式的结果为1,所以打印了1
当a=2,b=5时:
a-b>0条件不成立,b-a<0条件也不成立
因为或需要两个条件中有一个条件为真才返回1,这里两个都不成立,所以表达式的结果为0,所以什么也没打印

投入就放过 发表于 2022-7-8 22:54:53

临时号 发表于 2022-7-8 22:30
当a=5,b=2时:
a-b>0条件成立,因为或只需要一个条件成立就为真,所以表达式的结果为1,所以打印了1
当a=2,b= ...

太粗心了{:10_266:}
页: [1]
查看完整版本: C 语言 if语句