C语言问题(8)在线等

来源:百度知道 编辑:UC知道 时间:2024/09/23 10:59:56
假定w,x,y,z,m均为int型变量,有如下程序段;
w=1;x=2;y=3;z=4;
m=(w<x)?w:x; m=(m<y)?m:y; m=(m<z)?m:z;
则该程序运行后 m的值是___

请解释一下 偶在线等谢谢啦

m=1;

m=(w<x)?w:x;
这句话意思是: m等于(w小于x么?)是就返回w的值;否就返回x的值;
大白话就是 假如w小于x ,那么m就等于w,否则m就等于x;
后面的依次类推;
最后m就等于1了。

我晕了~~~~

e?x:y是一个表达式,是说表达式e成立则返回x,否则y
所以最后m = 1

bool?a:b是什么意思你应该知道吧。当bool为真(非0)时,表达式值为a,否则为b。
首先(w<x)为真,所以w的值赋给了m。所以m==1了。
之后(m<y)为真,所以m的值赋给了m.所以m还是1.
最后(m<z)为真,所以m的值赋给了m,所以m还是1.
不知对不对。