C语言中求三个数最大值遇到的问题 5

只有倒数第三句不一样为何第一个能得到正确的而第二个不能?... 只有倒数第三句不一样 为何第一个能得到正确的而第二个不能? 展开
 我来答
albumin
2015-04-07 · TA获得超过1.2万个赞
知道大有可为答主
回答量:4889
采纳率:87%
帮助的人:2299万
展开全部
第二个程序
a>max?a:max=(b>c?b:c)
先执行a>max,这时max是没有赋值的,a>max的结果不确定,因此整个表达式的值不确定
第一个程序
max=a>(max=(b>c?b:c))?a:max
优先执行括号里的式子,max=(b>c?b:c) ,max为b和c中的较大者,max有了确定值,然后执行max=a>max?a:max max为a和max中较大者,所以最后max是三者中最大的
更多追问追答
追问
书上说这个是从右向左执行的 感觉可能我哪里理解错了 麻烦能指出来一下吗 谢谢啦
书上说这个是从右向左执行的 感觉可能我哪里理解错了 麻烦能指出来一下吗 谢谢啦
lzktc1
2015-04-07 · 超过22用户采纳过TA的回答
知道小有建树答主
回答量:76
采纳率:0%
帮助的人:48万
展开全部
条件运算符的运算是先判断表达式1。
第二幅图里,先判断表达式1,即"a>max?",,但此时max还未被赋值,所以结果不对。
第一幅图里,max在和a比较之前,已经被正确赋值了,所以结果正确。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式