对于逻辑运算符理解的误区
对于逻辑运算符理解的误区
今天在写作业时遇到了一个问题,题目是
写一个输入三个整数然后输出最大数的程序
我写的代码是
`#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
进行比较。