为了账号安全,请及时绑定邮箱和手机立即绑定

第一个if语句为何不满足?

第一个if语句为何不满足?

C
_dvure 2017-02-14 13:31:31
#include <stdio.h>int main(){ int a=5,b=4,c=3,d=2; if(a>b>c) printf("%d\n",d); else if((c-1>=d)==1) printf("%d\n",d+1); else printf("%d\n",d+2);}
查看完整描述

2 回答

已采纳
?
习惯受伤

TA贡献885条经验 获得超1144个赞

a>b>c,这种判断逻辑上是不允许的,a>b,5>4结果为1,所以:1>3为0,所以判断失败。
查看完整回答
1 反对 回复 2017-02-15
?
_Del

TA贡献5条经验 获得超4个赞

第一个if语句 if(a>b&&a>c&&b>c)  另外第二个if语句 else if((c-1>=d)==1)  是不可以这样判断的 (c-1>=d)的结果是boolean类型 不可以与 int类型的 1 进行比较

查看完整回答
2 反对 回复 2017-02-14
?
慕粉2231066848

TA贡献4条经验 获得超4个赞

a>b>c这样的表达式是不允许的,应该写成a>b&&b>c才对,第二个if也有问题,等号的左端必须是左值,就是说不能是表达式应该改成(d<=c-1),而且也不需要将这个表达式的结果和1比较,这个逻辑式为真,结果就是1,执行if后语句;为假,结果就是0,执行else后的语句。加上“==1”就不知道是怎么回事了,应该要去掉的吧

查看完整回答
1 反对 回复 2017-02-15
?
半枯

TA贡献101条经验 获得超45个赞

if里面不能连续判断,要a>b&&a>c&&b>c,

查看完整回答
1 反对 回复 2017-02-14
?
Nullsilence

TA贡献10条经验 获得超5个赞

运算符都有优先级 与 结合方向的 , 你该想想第一个条件最先判断哪个 > 号?

查看完整回答
反对 回复 2017-02-15
  • 2 回答
  • 0 关注
  • 1641 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信