有以下程序: #include<stdio.h> main() {int w=4,x=3,y=2,z=1; printf("%d\n",(w<x?w:z<y?z:x)); }

程序的输出结果是____
里面的条件运算符怎么有两个呢,怎么看呢

条件运算符具有右结合性
当一个表达式中出现多个条件运算符时,应该将位于最右边的问号与离它最近的冒号配对,并按这一原则正确区分各条件运算符的运算对象。

w<x?w:z<y?z:x = w<x?w:(z<y?z:x) = 4<3 ? 4: (1<2 ? 1:2)

所以答案是 1追问

不懂啊,我怎么算的是3呢?

追答

你上级跑的还是自己想的?如果是自己想的,那就是你想错了

温馨提示:答案为网友推荐,仅供参考