{int w=4,x=3,y=2,z=1; 求解释 if(x>y&&(z==w)) 这个运行完是真是假 求解释 有点看不东了 --

如题所述

w<x?w:z<y?z:x 的用算顺序是从右向左的

先计算 z<y?z:x 即1< 2?1:3 为1。然后计算 w<x?w:1 即4<3?4:1 结果为1。

同理可计算出 w>x?w:z>y?z:x 为4

if(x>y&&(z==w) 为假,所以输出的是else ,即4
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-02-23
if(x>y&&(z==w))
&& 表示 并且 ,也就是必须同时实现条件。只要有一个条件不能实现,条件是不成立。结果就是假。

if(x>y||(z==w)) 结果为真追问

可是 按那道题的答案 选项看应该是真的啊 然后我就蒙了。。
{int w=4,x=3,y=2,z=1;
if(x>y&&(z==w))printf("%d\n",(wx?w:z>y?z:x));
}

本回答被提问者和网友采纳

int w=4,x=3,y=2,z=1; printf("%d\\n",(w<x? w:z<y? z:x));
w<x ? 成立:不成立因为w = 4 x = 3 所以 w > x 条件不成立!进入后面的语句分析 z<y ? z : x因为 z = 1 y = 2 , 条件成立, 取z 值 即 1

...{int w=4,x=3,y=2,z=1: printf ("%d\\n",(w<x?w:z<y?z:x)); }...
w<x 4<3 为假,执行 z<y 1<2 真 ,所以结果就是z ,就是 1 结果为1 科普:表达式1?表达式2:表达式3 表达式1 为真 ,结果就是表达式2 表达式1 为假 ,结果就是表达式3

...main() { int w=4,x=3,y=2,z=1; printf("%d",(w<x?9w:z<y?z:x...
void main(){ int w=4,x=3,y=2,z=1;printf("%d",(w<x?9*w:z<y?z:x));\/\/9与w之间应该有 } 程序执行结果为:1

我这有C语言的题,哪位大侠能解决一下,必有重谢!
if(b<d)x=2 ; else x=3 ; else x=4 ;else x=5 ;本题(1分)A:2B:3C:4D:5 A B C D 8、以下程序的运行结果是( )。void fun(int *n){ static int m=2; *n*=m-1; m+=2;}void main(){ static int m=1; int i; for(i=1;i<4;i++) fun(&m); printf("%d\\n",m);...

设int x=1,y=2,z=3,w=4,则表达式:x<y?x:z<w?x:w的结果为怎么会是3啊
本题中,先求(x<y)?为1,再求(x)为1作为 整个式子的值。 最后结果:1你的答案肯定是错的,3这个值只有在Z里面有,而整个式子只有取X、W的值,故结果肯定不可能为3。如果结果要为3,式子应变为x>y?x:z>w?x:z,或者x<y?z:z<w?x:w ...

int w=1,x=2,y=3,z=4,则w>x?w:y>z?y=z:x<y<z的结果是
您好!结果为1。解释:首先,判断w>z,为假,所以再运算第一个冒号“:”后的部分;接着,判断y>z,为假,所以再运算x<y<z,这里先是运算x<y,为真,所以其值为1,因为1<z,为真,所以x<y<z的值为1,所以y的值为1,因此y>z?y=z:x<y<z的值为1,所以整个表达式的值为1。如有错误...

...int w=1,x=2,y=3,z=4; 则表达式w>x?w:z>y?z:x的值是多少。具体步骤...
4。1、先执行z>y?z:x,判断z是否大于y,结果为真,取z的值,结果为4;2、再执行w>x?w:4,判断w是否大于x,结果为假,结果为4。若有多个条件表达式像这样连在一起:x=<表达式1>?<表达式2>:<表达式3>?<表达式4>:<表达式5>···执行顺序是从右到左依次判断再求出最后的x,即所谓的右...

4.33 若有int w=1,x=2,y=3,z=4;则表达式w<x?w:y<z?y:z的值是 。 A)4...
因为条件运算符的结合方向是自右至左的,所以表达式就可以变为w<x?w:(y<z?y:z),代入数据就为1<2?1:(3<4?3:4),进一步计算括号里的结果变为为1<2?1:3,最后整个条件表达式的结果为1。

...{int x=1,y=3,z=2; if(x>y) f(x,y);else if(y>z)
void f(int v,int w){ int t;t=v;v=w;w=t;}\/\/这个f()的功能是想交换数值吗?没用指针是不行的哦!main(){ int x=1,y=3,z=2;if(x>y)f(x,y);else if(y>z)f(y,z);else f(x,z);printf("%d,%d,%d",x,y,z);} \/\/将f()这样变就行了。\/ void f(int* v,...

...args[]) { int x=1,y=1,z=1; if (x--==1&&y++==1||z
答案是:x=0,y=2,z=1 先x--==1&&y++==1 x--==1结果是TRUE x的值是0,y++==1结果是TRUE y的值是2,&&这个符号如果左边为FALSE,就不用计算右边的表达式,如果是TRUE,就要计算右边的式子,那么x=0,y=2,x--==1&&y++==1的结果就是TRUE,||这个式子左边为TRUE那么右边的就不...

相似回答