C语言中的?符号是什么意思啊?

#include<stdio.h>
void main()
{
int x,y,z;
printf("\n请输入三个数:");
scanf("%d%d%d",&x,&y,&z);
printf("最大值为:%d\n",x>(y>z?y:z)?x:(y>z?y:z));
}

这是一个输入三个数字显示最大数的代码,
它倒数第二排有三个问号,我不知道是什么意思!

第1个回答  2007-01-05
a=(y>z?y:z);和
if(y>z)a=y; else a=z;
是等价的,写起来简单,节省

x>(y>z?y:z)?x:(y>z?y:z));
y>z?y:z代表y和x中最大的数,化简,*代替(y>z?y:z)
x>*?x:*代表x和*中最大的数
第2个回答  2006-12-25
y>z?y:z的意思是:先判断y>z是否成立。成立的话采用y,不成立采用z .
在这里,?没有独立的意义。本回答被提问者采纳
第3个回答  2006-12-25
三目运算符
首先判断的真假,若是真就执行Y,反之执行Z
y>z?y:z
这代码的意思是如果Y大于Z则输出Y,否则输出Z
第4个回答  2006-12-25
x?y:z这个是三目运算符,首先判断x的真假,若是真就执行y,反之执行z!
第5个回答  2006-12-25
三目条件运算符 ?:
看看书吧

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网