
if(a>b&&a>c)正确
这个我想要表达 a>b>c 不是应该 if(a>b&&b>c)这样写么 为什么要if(a>b&&a>c)这么写啊?那能表达出 b>c的意思么?
if (a > b > c)确实是错误的,原因在于:表达式a > b > c会依次从左到右进行计算,即相当于(a > b) > c 先计算
a > b,如果成立,会返回1, 否则会返回0; 之后再比较1 > c或者 0 > c这样就导致和你想要的结果不同
例如: a=4,b=3,c=2 则a > b返回1, 1 > c返回0,a > b > c最终返回的是0,认为不成立
a=4,b=3,c=0,则a > b返回0, 1 > c返回1, a > b > c最终返谨中帆回的是1,认为成立
因此要表达a > b > c这样的逻辑,正像你说的,应该使用 if (a > b && b > c)
看下面例子程序的输出结果
#include
#include
int main()
{
int a = 4, b = 3, c = 2, d = 0;
if (a > b > c)
printf("a > b > c : Right ");
else
printf("a > b > c : Wrong ");
if (a > b > d)
printf("a > b > d : Right ");
else
printf("a > b > d : Wrong ");
if (a > b && b > c)
printf("a > b > c : Right ");
else
printf("a > 祥雹b > c : Wrong ");
培带 return 0;
}
运行结果如下:
a > b > c : Wrong
a > b > d : Right
a > b > c : Right
希望对你有帮助 :)
根据结合型规则,if(a>b>c) 是先判断a是不是大于b a大于b的物正话 那么表达罩颂悔式a>b的值为1,再将1和c的值做比较, 关系运樱首算符得到的结果是逻辑值(0或者1)!
如果你想要表达 a>b>c 是应该 if(a>b&&b>历中纤c)这样写的
if(培稿a>b&&a>c) 是 a>c且a>b
在哪看肢仿的错误答案?要相信自己的判断,不要一味的相信课本。。
你的if(a>b&&b>c)要表基告示的是a>b>搏衡明c,只有a>b与b>c同时为真才运行if后面语句的,要相信自拦粗己!
a>b>c 是应该 if(a>b&&b>c)这样写,你的想法完全正确!