c语言:a>b?a:b用法的问题 请教解决

如题所述

第1个回答  2019-05-10
a>b?a:(b>c?b:(a>c?a:c)),先看分析你的运算式构成及其逻辑关系:a>b时结果为a(不一定是最大值);a<=b时,结果为b>c?b:(a>c?a:c),若b>c则值为b(最大值),若b<=c则值为a>c?a:c(此时显然a<=b<=c,即c肯定为最大值,a>c?a:c虽然没问题但是累赘)。三目运算符有时候比if条件语句简洁,对于简单的判断推荐使用三目运算。对于复杂的运算,使用三目运算反而会使其看着更复杂,不利于阅读,所以不建议三目运算语句中嵌套过多运算。还有,对于printf,似乎有些人很喜欢把一些运算直接丢进去作为参数,本人不推荐这样做。首先会使语句过长,其次可能会影响阅读,甚至使逻辑混乱(函数参数入栈方式的不同,++/--的处理方式不同等可能会影响结果)。多写几行代码费不了多少事,但是有时会减少很多麻烦,也利于别人阅读你的代码。
相似回答