int x=0,y=20,z=30; if(x||(y=50)>z)printf("y=%d",y); else printf("y=%d",y);

int x=0,y=20,z=30;

if(x||(y=50)>z)printf("y=%d",y);

else printf("y=%d",y);
会输出什么

y=50
解释如下:

首先判断条件 x||(y=50)>z 中的 x 为 0,所以会执行后面的条件语句 (y=50)>z,此时 y 的值变成了 50。

然后,由于 (y=50)>z 的值为 0,所以执行 else 分支,输出 y=50。

确实是50
https://c.runoob.com/compile/11/

img

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^