(x)<(y)?(x):(y)在C语言中的意思?

 我来答
莫道無情
2019-11-30 · TA获得超过1.5万个赞
知道答主
回答量:317
采纳率:100%
帮助的人:8.6万
展开全部

(x)<(y)?(x):(y)在C语言中的意思是指如果表达式(x)<(y)成立即x小于y,则执行表达式(x),否则执行表达式(y)。(x)<(y)?(x):(y)叫做问号表达式。

举例及结果:

int a=5,b=3;

printf("%d",a>b?a:b);

如果a大于b成立则执行:前面的即输出a。否则执行:后面的即输出b。本例中输出结果为5。

扩展资料:

问号表达式用法:求最大值和数值排序

1、求x、y、z的最大值

#include "stdio.h"

main()

{

    int x,y,z,max;

    scanf("%d%d%d",&x,&y,&z);

    max=x>y?(x>z?x:z):(y>z?y:z);

    printf("max=%d",max);

}

2、键盘输入三个整数,按由小到大的顺序输出。

#include "stdio.h"

main()

{

    int i,j,k,max;

    scanf("%d%d%d",&i,&j,&k);

    max=i>j?i:j;

    max=max>k?max:k;

    printf("max=%d",max);

}

ayktx
推荐于2018-02-28 · TA获得超过668个赞
知道小有建树答主
回答量:946
采纳率:33%
帮助的人:415万
展开全部

条件 ? 语句1 : 语句2         运算符

(x)<(y)?(x):(y)

如果 ? 前面的条件为 真, 则执行   语句1, 否则 执行   语句2



#define MIN(x,y) (x)<(y)?(x):(y)
main()
{
    int i=10,j=15,k;
    k=10*MIN(i,j);
    printf(“%d\n”,k);
}

这个题的答案怎么是15呢?



哈哈, 这个我知道

把宏展开后是这样了

k = 10 * (i) < (j) ? (i) : (j);

此时, 是用 10 * i  = 100 和j = 15 比较, 当然是15了

追问
太感谢你了,终于明白了呢。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
870177103
2013-07-03 · TA获得超过522个赞
知道小有建树答主
回答量:486
采纳率:0%
帮助的人:347万
展开全部
上面说的等价都是错的,实际上它是个表达式,无论如何,cpu都会计算它的值
其实按asci规范来说,下面这个表达式
exp0 ? exp1 : exp2
如果exp0为真,那么整个表达式就相当于exp1,否则就相当于exp2
即使是一个赋值语句也会有其结果,结果为最左边的值或变量
这个语句一般用于条件赋值
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
smile李渊然
2013-07-03 · TA获得超过201个赞
知道答主
回答量:126
采纳率:0%
帮助的人:89.3万
展开全部
第一,< 后面的是三目运算符,其优先级高于一切赋值运算符,比如< 。第二,三目运算符的定义是,若?成立,则分号前面的存在,不成立则分号后面的成立,这题的意思是,如果(Y)是成立的,那么(x)<(x),反之你就知道了吧,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
俏姐儿
2013-07-03 · TA获得超过247个赞
知道小有建树答主
回答量:326
采纳率:92%
帮助的人:141万
展开全部
这个应该是取(x),(y)中较小的那个值吧。。。

比如说
c=a>b?1:2
意思就是:
a>b如果是真的,c赋值为1
a>b如果是假的,c赋值为2
等价于
if (a>b)
c=1;
else
c=2;
end
追问
#define MIN(x,y) (x)<(y)?(x):(y)
main()
{int i=10,j=15,k;
k=10*MIN(i,j);
printf(“%d\n”,k);
}这个题的答案怎么是15呢?
追答
好像是运算符优先的问题。。。
k=10*MIN(i,j);
相当于(10*i)<j?i:j

运算符优先顺序我忘了,不过define代换的时候的确是没有自带括号的。。。
比如说#define a x-10
那10*a就变成了10*x-10而不是10*(x-10)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式