C语言 若float x=2.0,y=1.0; , 则条件表达式x>y?1:1.5的值为1.

若float x=2.0,y=1.0; , 则条件表达式x>y?1:1.5的值为1.
为什么不对?麻烦解释解释,谢谢!

表达式的值
这个值的类型,是参与运算中的类型级别最高的那个类型
类型级别 浮点型最高,整型次之,字符最低
也就是说x>y?1:1.5 这个表达式他的值的类型是浮点型

最后的结果是1.0,而不是1
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-29
是的,结果为1
条件表达式:条件?表达式1:表达式2;是三目运算符,如果?前面的条件成立,则表达式的值就是表达式1的值,否则是表达式2的值。

x>y?1:1.5的条件是x>y即,2>1成立,所以表达式值就是1而不是1.5。
所以条件表达式最终的值为1。本回答被网友采纳
第2个回答  2016-01-09
这是一个三目运算符。
x>y整个表达式为1.0;
否则为1.5.
表达式的值
这个值的类型,是参与运算中的类型级别最高的那个类型
类型级别 浮点型最高,整型次之,字符最低
也就是说x>y?1:1.5 这个表达式他的值的类型是浮点型
最后的结果是1.0,而不是1
第3个回答  2015-06-04

因为x=2.0,y=1.0所以x>y为真,所以取问号后的第一个值:1

?:是三目运算符

例如x>y?1:1.5等价于:

if (x > y)return 1;
else return 1.5;

相似回答