if(a>b>c)为什么错误?

C语言问题~就是不知道那样表达为什么错啦~... C语言问题~ 就是不知道那样表达为什么错啦~ 展开
 我来答
运偲戢宾实
2020-03-01 · TA获得超过3904个赞
知道大有可为答主
回答量:3184
采纳率:32%
帮助的人:219万
展开全部
a>b>c在c语言里头被认为是一个表达式
根据C编译系统的不同(从左自右结合运算或从右自左结合运算),这个表达式会被认为是(a>b)>c或者a>(b>c)
a>b是一个表达式,如果a大于b,那么这个式子的值就是TRUE,否则就是FALSE
而基本约定俗成的,我们都会#define
TRUE
1,就是说TRUE为1,FALSE为0
假设a=3,b=2,c=1,C编译系统按照从左自右结合运算,那么就是(a>b)>c,由于a比b大,因此a>b这个表达式的值为真,也就是值为1,,然后
表达式a>b的值再与c比较,两边都是1,是相等的,大于号不成立,因此(a>b)>c的结果是FALSE
如果你的本意是想让程序“当a>b且b>c”时执行if语句块里的语句时,你如果用a>b>c,那么if语句块里的语句就有可能根本不会被执行(当然,在我上面假设的这种情况下,如果a=2,b=1,c=0,if语句块中的语句还是会被执行的,你可以自己思考一下)。
因此,为了保证程序的正确性,我们必须这么写:if(a>b
&&
b>c)
如果还有不清楚的地方,可以给我发消息,最近正好要写一本C语言的教材,你提的问题也可以让我们知道在教材中应该在哪些方面要加强
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式