问一道计算机等级考试试题(C语言),求详解

#include<stdio.h>
int main()
{
int x,y,z;
x=30;
y=50;
z=80;
if(x>y||x<z&&y>z) \\主要是这句话什么含义
z=x;
x=y;
y=z;
printf("%d%d%d",x,y,z);
}

答案是:50 80 80
理由如下:
开始时: x=30 y=50 z=80
接下来执行:
if(x>y||x<z&&y>z) z=x;
因&&(逻辑与)的优先级高于||(逻辑或)的优先级,
if(x>y||x<z&&y>z) 意思是:
x大于y(成立)或者,x小于z并且y大于z(同时成立),二者之一成立就满足条件,执行 z=x;操作。
实际上,x(30)大于y(50)不成立,x(30)小于z(80)并且y(50)大于z(80)也不成立,故,不执行 z=x;
直接执行后边的x=y y=z;
即:x=50,y=z=80
故输出:50 80 80
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-28
条件语句呀吗,,,,,,