战神权力之眼免费观看:关于这个C语言的简单程序。

来源:百度文库 编辑:高考问答 时间:2024/04/27 17:00:10
main()
{
int w=1,x=2,y=3,z=4,m;
m=(w<x)?w:x;
m=(m<y)?m:y;
m=(m<z)?m:z;
printf ("%d",m);
}

请问大家这个是什么意思?问号是什么意思?冒号是什么意思??全部程序是什么意思?
答案是多少?

这是C语言的条件表达式,固定格式就是m=a?b:c
它的意思是如果a是true,那么m=b;如果a是false,那么m=c

------------------------
参考:
表达式1? 表达式2: 表达式3

其求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件表达式的值,否则以表达式2的值作为整个条件表达式的值。 条件表达式通常用于赋值语句之中。

例如条件语句:

if(a>b) max=a;
else max=b;

可用条件表达式写为 max=(a>b)?a:b; 执行该语句的语义是:如a>b为真,则把a赋予max,否则把b 赋予max。

main()
{
int w=1,x=2,y=3,z=4,m;
m=(w<x)?w:x; (1)
m=(m<y)?m:y; (2)
m=(m<z)?m:z; (3)
printf ("%d",m);
}
问号语句是条件语句例如m=(w<x)?w:x; 的意思是如果w<x那么m=w,要是w>x,m就取x的值,很显然w=1,x=2所以w<x,那么(1)中同m=1, (2)中的m是由(1)中的m=1与y进行比较,自然m<y,所以(2)中m=1, (3)中的m是由(2)中的m=1与z比较,显然m<z所以m=1.最后的结果是m=1。

m=(w<x)?w:x;
如果w<x那么m=w,否则m=x
程序是求w,x,y的最小值

求最小值