女神联盟2出手游了吗:高手请进!一道C语言编程的题,对于您这相当简单!急!!

来源:百度文库 编辑:高考问答 时间:2024/05/11 15:20:48
假定w、x、y、z、m均为int型变量,其中w=4,x=1,y=3,z=3。有如下程序段:
m=(w<x)?w:x;
m=(m<y)?m:y;
m=(m<z)?m:z;
则该程序运行后,m的值是:

请不要直接告诉我答案,请帮我讲一下,谢谢

这段代码是从4个数字中取最小值的,

运算符(A)?B:C的运算方法是先计算变量A的值是真还是假,如果是真那么结果取变量B的值,否则取变量C的值;

m=(w<x)?w:x; 先比较w和x的大小,如果w小于x,那么
w<x的值为真,m取w的值;如果w不小于x,那么w<x的值为假,m取x的值。可见,m始终都是从w和x中取较小的值。

以下类同。

可得m的值为4个中最小的 m=1

1: m=(w<x)?w:x;
if(w<x)
{m=w;}
else
{m=x;}
所以:
w<x true , m=w=4
同理:
2: m<y true , m=m=4
3: m<z true , m=m=4

表达式1?表达式2:表达式3

书上有的,别急!

条件表达式的一般形式为
表达式1?表达式2:表达式3
它的意义是先求表达式1的值,若为true则求表达式2,此时2的值作为整个表达式的值.若1的值为false,则求3的值.
可见,m的值为1