推扬网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
推扬网 门户 你问我答 查看内容

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

2020-7-17 18:25| 发布者: admin| 查看: 65| 评论: 0

摘要: 莫道無情的回答: (x)<(y)?(x):(y)在C语言中的意思是指如果表达式(x)<(y)成立即x小于y,则执行表达式(x),否则执行表达式(y)。(x)<(y)?(x):(y)叫做问号表达式。举例及结果:int a=5,b=3;printf(%d,ab?a:b);如果 ...

莫道無情的回答:

(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的回答:

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

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

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

#defineMIN(x,y)(x)<(y)?(x):(y)
main()
{
inti=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了

俏姐儿的回答:

这个应该是取(x),(y)中较小的那个值吧。。。

比如说
c=a>b?1:2
意思就是:
a>b如果是真的,c赋值为1
a>b如果是假的,c赋值为2
等价于
if (a>b)
c=1;
else
c=2;
end

smile李渊然的回答:

第一,< 后面的是三目运算符,其优先级高于一切赋值运算符,比如< 。第二,三目运算符的定义是,若?成立,则分号前面的存在,不成立则分号后面的成立,这题的意思是,如果(Y)是成立的,那么(x)<(x),反之你就知道了吧,

870177103的回答:

上面说的等价都是错的,实际上它是个表达式,无论如何,cpu都会计算它的值
其实按asci规范来说,下面这个表达式
exp0 ? exp1 : exp2
如果exp0为真,那么整个表达式就相当于exp1,否则就相当于exp2
即使是一个赋值语句也会有其结果,结果为最左边的值或变量
这个语句一般用于条件赋值

鲜花

握手

雷人

路过

鸡蛋

最新评论

热门推荐
最新资讯

QQ|广告服务|投稿要求|禁言标准|版权说明|免责声明|手机版|小黑屋|推扬网 ( 粤ICP备18134897号 )|网站地图

GMT+8, 2021-6-14 04:54 , Processed in 0.131037 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

返回顶部