c语言中a < b ? a : c < d ? c : d是什么意思?求解答

如题所述

等效于
(a < b) ? a :( c < d ? c : d)
即 如果a<b 值为a
否则 如果c<d值为c, c>=d 值为d
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-05
a<b?a:m的意思是是说前面的表达式a<b成立为真结果就为a否则为m,这里的m是c<d?c:d的结果。原语句是把两个嵌套在了一起,分开分析就对了
第2个回答  2017-10-13
这是一个三元运算式
当a<b时,等于a,否则等于c<d?的值
当c<d时,等于c;否则等于d
望采纳,谢谢
第3个回答  2012-05-05
2楼很详细呢,也就是如果a<b则a=a如果大於等於b则a=c,然後再判断赋值之後的a是否小於d,小於则a的最终结果为c,大於或等於d则a的最终结果为d
第4个回答  2012-05-05
相当于:

if(a<b)
{
if(a<d)
return c;
else
return d;
}
else
{
if(c<d)
return c;
else
return d;

}追问

if(a<b)
{
if(a<d)
return c;
else
return d;
上半部分怎么觉得看不懂啊……是不是打错了?a和d没直接联系吧??

追答

我详细解释下哈:
如果 a<b 那么公式就变成了 a< d ? c : d
否则 公式就变成了 c<d?c:d

(a < b ? a : c )< d ? c : d 加个括号你或许会看起来明白一点

本回答被提问者采纳
相似回答