
有以下程序: #include<stdio.h> main() {int w=4,x=3,y=2,z=1; printf("%d\n",(w<x?w:z<y?z:x)); }
1个回答
展开全部
条件运算符具有右结合性
当一个表达式中出现多个条件运算符时,应该将位于最右边的问号与离它最近的冒号配对,并按这一原则正确区分各条件运算符的运算对象。
w<x?w:z<y?z:x = w<x?w:(z<y?z:x) = 4<3 ? 4: (1<2 ? 1:2)
所以答案是 1
当一个表达式中出现多个条件运算符时,应该将位于最右边的问号与离它最近的冒号配对,并按这一原则正确区分各条件运算符的运算对象。
w<x?w:z<y?z:x = w<x?w:(z<y?z:x) = 4<3 ? 4: (1<2 ? 1:2)
所以答案是 1
追问
不懂啊,我怎么算的是3呢?
追答
你上级跑的还是自己想的?如果是自己想的,那就是你想错了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询