x<y?x++:y++

int x=1,y=2,z=3;
x+=y+=z;
cout<<(x<y?y:x)<<",";
cout<<(x<y?x++:y++)
这里最后一步不知道怎么回事
先谢谢一楼的回答,我也是这么理解的,那么输出应该就是 Y的值,也就是5啊,可是书上的输出是1……

x+=y+=z;
相当于:y=y+z;----y=5
x=x+y;----x=6

cout<<(x<y?y:x)<<",";
相当于:if(x<y) cout<<y<<",";
else
cout<<x<<",";

cout<<(x<y?x++:y++);
相当于:if(x<y) cout<<x++;
else
cout<<y++;

#include<iostream>
using namespace std;
int main()
{
int x=1,y=2,z=3;
x+=y+=z;
if(x<y) cout<<y<<",";
else
cout<<x<<",";
if(x<y) cout<<x++;
else
cout<<y++;
}

(输出结果:6,5Press any key to continue)

#include<iostream>
using namespace std;
int main()
{
int x=1,y=2,z=3;
x+=y+=z;

cout<<(x<y?y:x)<<",";
cout<<(x<y?x++:y++);
}

(输出结果:6,5Press any key to continue)
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-12-26
你运行下就清楚了,答案是6,5
其实是先输出较小的值,后那个较小的加1
#include<iostream>
using namespace std;
int main()
{
int x=1,y=2,z=3;
x+=y+=z;
cout<<(x<y?y:x)<<",";
//cout<<(x<y?x++:y++) <<endl;
if(x<y)
{
cout<<x<<endl;
x++;
}
else
{
cout<<y<<endl;
y++;
}
return 0;
}

参考资料:注意前加和后加的区别,返回值不同

第2个回答  2008-12-26
count<<(x<y?x++:y++)等同于
if(x<y)
{
x++;
}
else if(x>y)
{
y++;
}
第3个回答  2008-12-26
如果x<y,x=x+1;
如果x>=y,y=y+1
第4个回答  2012-06-03
从左至右计算,y=y+z=5,x=x+5=6

表达式 x<y?x++:y++ 的值为 ?要讲清楚怎么算的 谢谢
这是一个式子,如果是z=x<y?x++:y++;的话,结果是x或者y中小的那个 比如x=3,y=5那么z=3。其实就相当于x<y?x:y;只不过在这句话后面,如果x<y,会执行x++,x>=y会执行y++,但是这里的x++和y++是在这句话之后执行的,也就是:比如x=3,y=5那么因为x<y,那么把x的值(这个时候是3...

C语言中z+=x<y?x++:y++的意思
判断 X<Y 为真 则 z=z+(x++);为假 则 z=z+(y++);

c语言中,若x=3,y=2,z=1,则表达式z+=(X<Y?x++;y++)的值是
X<Y ? x++ : y++ 意思是如果x<y,则执行x++,否则执行y++;例子中x>y,所以表达式相当于 z+=y++;y++值为2,所以相当于z+=2 z初值为1,计算后z=3

x<y?x++:y++
cout<<(x<y?y:x)<<",";相当于:if(x<y) cout<<y<<",";else cout<<x<<",";cout<<(x<y?x++:y++);相当于:if(x<y) cout<<x++;else cout<<y++;include<iostream> using namespace std;int main(){ int x=1,y=2,z=3;x+=y+=z;if(x<y) cout<<y<<",";else ...

int x=3,y=3,z=1,则printf("%d\\n,z+=x<y?x++:y++);的值为多少?_百度知 ...
由于+=优先级较高所以1+3=4.4不小于y所以执行y++ 3+1=4 结果是4

z=x>y?x++,++y是什么意思
z=x>y?x++:++y是 三目运算符:对于条件表达式b ? x : y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。例如:public class Test { public static void main(String[] args) { int a = 5; int b = 6; ...

...X=1,y=2,z=3; x+=y+=z; printf("%d",(x<y?X++;y++)) } 输出结果是...
这是一个条件表达式,判断x<y的真假,真就取x++,假就取y++ x=1,y=2,z=3 x+=y+=z 是自右运算的,y=y+z=5 此时y=5 x+=y x=x+y=1+5=6 然后判断x<y 很明显x>y 所以条件是假值,取y++ 这里注意一下,要求输出的是y 不是y的值 所以最后结果是5 但如果要求输出y y的...

c语言(x-y)?(x++):(y++)
应该是C,此语句的意思是如果x-y为真 则执行x++,否则执行y++;c语言中非零即为真,所以此题应为C,呵呵!

(选择)与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是()_百度...
在C语言中,有数据类型的转换。这里涉及的是数值型数据大逻辑型数据的转换。转换时,非零值转换为真,0值转换为假。有了这个基础就好解释了。这里是如果X-Y为真,用X++,否则 用Y++.X-Y为真,就是X-Y的值不为0.所以就是A了。

(x-y)?(x++):(y++)为什么与(x-y!=0)等价?
x=(a)?(b):(c) 的含义是如果a的值为真则x=b否则x=c (x-y)?(x++):(y++)相当于 if(x-y!=0)该式的值为x++ else 为 y++

相似回答