c语言以下程序输出结果是什么?为什么?

main()
{
int w=4,x=3,y=2,z=1;
printf("%d\n",(w<x?w:z<y?z:x));
}

新手上路,我想知道得到结果的过程,谢谢大家.

第1个回答  2007-07-28
结果是1:
“? :”是三目运算符
问号前面的是条件。如果条件成立就得到冒号前面的结果;不成立就是冒号后面的结果。
这里是双三目运算符:由于w<x不成立所以得到“z<y?z:x”,在通过运算法则来判断接得到1了。
第2个回答  2007-07-28
是不是1啊

它先比 W和X的大小,如果W<X,则输出W,否则,比Z和Y,如果Z<Y,则输出Z
否则,输出X

综上,输出Z。
Z 是1 吧,那就是它了——我的TC不能用了,也不想重弄好,我是这样 想的,不一定对,要是不对,请高手指出。
第3个回答  2007-07-28
1

条件运算符是三目运算符,执行时从右从左执行先进行第一次判断z<y?z:x
可知 得1
继续执行,w<z?w:z
可知输出 z,即1本回答被提问者采纳
第4个回答  2007-07-28
输出结果是1

首先判断w<x是否为真,如果为真,执行打印w..如果为假,判断z<y是否为真,如果为真,执行打印z,否则,执行打印x

w<x?w:z<y?z:x
这个就相当于if else语句
第5个回答  2007-07-28
运行一下呗!