C语言 语句if(a>b) printf("%d",a);else printf("%d",b);能否用条件表达式a>b?a:b取代?为什么

如题
答案是不能,麻烦解释一下原因,谢谢!

不能,
if(a>b) printf("%d",a);else printf("%d",b);的意思是如果a>b则输出a,否则输出b.
而a>b?a:b;没有完成这个功能,要完成这个功能应该这样
a>b?printf("%d",a):printf("%d",b);
本来也可以这样printf("%d",a>b?a:b);但是此题要求用条件表达式,所以只能用前一个方法啦
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-03
三目运算符:表达式1?表达式2:表达式3,如果表达式1为真,结果就等于表达式2,为假等于表达式3,a>b?a:b等式求两个数的最大值,但是if(a>b) printf("%d",a);else printf("%d",b);是打印输出两个数的最大值,a>b?a:b没有打印输出,如果要替换的话要改成
printf("%d",a>b?a:b);
第2个回答  2015-06-03
这一句应该改成max=(a>b)?a:b;就可以了,a>b你没加括号。
第3个回答  2015-06-03
printf("%d", a>b?a:b);

这样写可以啊,已经运行测试了!

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网