c语言 条件运算符

#include<stdio.h>intfun(inta,intb,intc){intt;/**********found**********/t=(a>b)?(b>c?... #include <stdio.h>
int fun(int a, int b, int c)
{
int t;
/**********found**********/
t = (a>b) ? (b>c? b :(a>c?c:a)) : ((a>c)?a : ((b>c)?c:b));
return t;
}
main()
{int a1=3, a2=5, a3=4, r;
r = fun(a1, a2, a3);
printf("\nThe middle number is : %d\n", r);
}
请问 (a>b) ? (b>c? b :(a>c?c:a)) : ((a>c)?a : ((b>c)?c:b))这段是什么意思,这么多?和:和()程序执行顺序是什么,每一个?和:和()的作用是什么,详细跟我说一下,这段程序根本不知道怎么入手
展开
 我来答
帐号已注销
2018-05-25 · TA获得超过25.9万个赞
知道小有建树答主
回答量:2206
采纳率:96%
帮助的人:82.2万
展开全部

条件运算符(? : )是一个三目运算符,即有三个操作数。

使用条件运算符(?:)可以实现 If else 的功能,其一般形式为:

表达式1 ? 表达式2 : 表达式3

例如条件语句:

if(a>b)  max=a;
else max=b;
可用条件表达式写为 

max=(a>b) ? a : b;

执行该语句的语义是:如a>b为真,则把a赋予max,否则把b 赋予max。

if条件语句例子如下:

直接编译,程序输出结果中任意输入年龄,程序执行结果如下图所示:

知识扩展:

  • 条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符

  • 条件运算符?和:是一对运算符,不能分开单独使用。

  • 条件运算符的结合方向是自右至左。

百度网友83cdc1c
2015-05-27 · TA获得超过5792个赞
知道大有可为答主
回答量:1907
采纳率:100%
帮助的人:854万
展开全部

<条件>? <表达式1>:<表达式2>

这个是三元运算符,C语言运算符的一种,运算规则是:先判断<条件>表达式是否为真,如果为真,则取<表达式1>的值,如果为假,则取<表达式2>的值。

c = (a>b)?a:b;
相当于:
if(a>b)
    c = a;

else
    c = b;

C语言无论什么运算符,其优先级都不可能高于括号,所以总是先计算括号内的表达式的值,再用这个值参与括号外的表达式计算。

所以你这里这句话翻译一下就是:

if(a>b)
    if(b>c)

        t=b;

    else

        if(a>c)

            t=a;

        else

            t=c;

else
    if(a>c)

        t=a;

    else

        if(b>c)

            t=c;

        else

            t=b;
更多追问追答
追问
(a>b) ? (b>c? b :(a>c?c:a)) : ((a>c)?a : ((b>c)?c:b))
else

if(a>c)

t=a;

else

t=c;

错了把,是不是
else

if(a>c)

t=c;

else

t=a;
追答
这是在else分支里,你再看看
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wchyumo2011
推荐于2017-09-28 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:2841万
展开全部

一个括号对是一个,解析一下就能看明白了,以下就是解析的结果。

if (a > b){
    if (b > c)return b;
    else {
        if (a > c)return c;
        else return a;
    }
}
else {
    if (a > c)return a;
    else {
        if (b > c)return c;
        else return b;
    }
}

 ?:是三目运算符,可以和if-else进行转换,如a>b?a:b的意思就是

if(a>b)return a;
else return b;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
敦厚又奔放丶银杏a
高粉答主

2020-04-30 · 说的都是干货,快来关注
知道答主
回答量:4.9万
采纳率:5%
帮助的人:2461万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式