#include "stdio.h" main() {int x=1,y=2,z=0; if(x=

#include "stdio.h"
main()
{int x=1,y=2,z=0;
if(x=2)z=x,x=y,y=z;
printf("%d,%d\n",x,y);}
正确答案: 2,2
求解答?

关键是if(x=2),这里的x=2为赋值表达式,且此条件为真,执行z=x,x=y,y=z;后,z=2,x=2,y=2。所以打印的x,y为2,2。追问

嗯、刚明白。重点就是那个赋值x=2。谢谢啦。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-24
注意else是和最近的if搭配的,所以一开始if(x<y)就不满足,下一句就是执行printf("%d\n",z);了,此时z还是等于2
第2个回答  2014-07-06
if表达式中的等号应该是两个追答

if(x==2)

你现在的一个等号相当于赋值x=2

追问

题目就是一个阿

我是复制粘贴的题目

题目错了嘛?

追答

或许吧

if里面通常是比较才对

现在这样,肯定是打印2,2了

追问

我好像恍然大悟了

if赋值x=2、则z=2、x=2、y=2

是这样吗?

追答

对!

本回答被提问者采纳
相似回答