YoungLee的手账

YoungLee的手账

对于逻辑运算符理解的误区

Dev
19
2024-07-07

对于逻辑运算符理解的误区

今天在写作业时遇到了一个问题,题目是

写一个输入三个整数然后输出最大数的程序

我写的代码是

`#include

int main(){
int a,b,;
scanf(“%d %d %d”,&a,&b,&c);
if(a>b>c||a>c>b){

printf("max=%d",a);

}
if(b>a>c||b>c>a){

printf("max=%d",b);

}
if(c>a>b||c>b>a){

printf("max=%d",c);
}

}`

但是他返回的结果是

这里的话就是我对逻辑运算符理解有误区了

实际上,表达式a>b>c并不用于同时比较三者之间的关系。它是按照优先级和结合性来进行计算的,首先计算a>b,得到一个布尔结果(0或者1),然后再用这个结果与c进行比较。