YoungLee

的手帐

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

2023-1-1·话题深潜

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

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

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

我写的代码是

`#include <stdio.h>

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进行比较。