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

#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);

}


_dvure
浏览 1642回答 2
2回答

习惯受伤

a>b>c,这种判断逻辑上是不允许的,a>b,5>4结果为1,所以:1>3为0,所以判断失败。

_Del

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

慕粉2231066848

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

半枯

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

慕田峪6141110

RWQQGTQTWGQLXQGDQDQKIYPLFJPWMPJMEHJGERUAUXBPLRARHNKDGTAYNGHREAUHXNIFJKATZREXXMBSZFSZCPCSGMCWKNVOIVVPRKLBBBBHLSNDDDJDJTYLRIONXKFCFYVZMVWNTGTDGTAIBVJZCZCFIETGVNTXFICFZTZIJXRXGTOWZRBIHOKYCIYJFOVLOUJMJQXKZAQDAZJUAFRKBVLHXROGSXXQQQCKDGWWYBROONXDNMUGJNZZPLHYKBXATNJPIQQPCFXEODQFMYYWSBEUUNWWJFQDSCQDKAAQTDCSSMJFDPKNQPICOBXNQWWRDBPZIIUXEYONMWSAKGMMDAWYCVHEQNJZADWHQNHXAGJQMPSJMVIERKBDTGPCOOHHFUWFSLOKKNTTVIKEVTPPYYLOXDGUGKDGIYHTMMNZMNQNJNZOYYKZTCCZEQJDPVLIVVSFFLOAPVWPJPCOXEKGMXHDAFCIYETPVBLBKDIUGUKXAEEVCOSEBXKWNLAUMWCZYILBOSPOIOKLHKJQSUEXKGPZVNWOADMSPLROSZYDQXDJVSVBRGFBEHKQLOHXLIYOOFBEEUDEKXKJGCZBFRMHGJPCOKRKQFKAVREKHOURSONNGTZSFAGZDXRQKAHDDNNZJUADCDNJYUZFJSXBERXKPDMQZZIROUBKQPJZVSLBHKKQZTCEKQQTNFRCCOREXDWGMIYSREXKNAQGSIRODTPPSTUDJDAGGNJGSYRETFJJDTGAOXNGHAGMSPLOOOYHEADCTALUDXNQUDDDZJOXZMRETNGFJPQQPPMTMZVIXNHXQZXKQMWYEIXDQJIPOHAFVBKGNXHAWMSFORNNQHNSVOZVILUNAGKDMZJGMMMCYEPCPCXAZZWD

Nullsilence

运算符都有优先级 与 结合方向的 , 你该想想第一个条件最先判断哪个 > 号?
打开App,查看更多内容
随时随地看视频慕课网APP