c语言 结果是13,为什么?

a=13; b=25; c=-17;((y=(a>b)?a:b)>c)?y:c不对,结果应该是25
2025-02-25 13:29:27
推荐回答(3个)
回答1:

((y=(a>b)?a:b)>c)?y:c,这是三目表达式,当问号前边的式子为真时,结果是y,为假时结果是c。

(y=(a>b)?a:b)>c中的y=(a>b)?a:b又是一个三目表达式,同上解释。所以,a=13,b=25,a>b为假,那么y=b=25,((y=(a>b)?a:b)>c)?y:c变为(y=25>c)?y:c,因为y=25,c=17,所以为真,故结果是25

回答2:

谁告诉你答案是13的?

回答3:

如果a大于b,则y=a,否则y=b;
如果y大于c,则y=y,否则y=c;
a=13小于b=25,则y=25,c=-17,y大于c,则y值不便,输出y值为25