A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 Michael_xpd 于 2013-9-11 11:44 编辑

今天看数据结构时候看到的
Status Max(Triplet T,ElemType &e){
         //用e返回值指向T的最大元素值
         e=(t[0]>=T[1])?((T[0]>=T[2])?T[0]:T[2])
                                 :((T[1]>=T[2])?T[1]:T[2])
        return Ok;
}//Max
当时看到这么多三目运算符的嵌套使用,我直接晕了……

评分

参与人数 1技术分 +1 收起 理由
特殊服务 + 1

查看全部评分

6 个回复

倒序浏览
t0>=t1----t0>=t2---t0
                t0<t2---t2
t0<t1-------t1>=t2---t1
               t1<t2------t2

就是这个结构的了
回复 使用道具 举报
这个看上去是复杂,还好是加了括号的,
(t[0]>=T[1])     ?      ((T[0]>=T[2])?T[0]:T[2])      :  ((T[1]>=T[2])?T[1]:T[2])
分别求出冒号前面和后面两个式子的返回结果,假如前面返回T[0],后面返回T[2],那么式子就变成了
(t[0]>=T[1]) ?T[0]:T[2]   这样不就很容易看明白了。

评分

参与人数 1技术分 +1 收起 理由
特殊服务 + 1

查看全部评分

回复 使用道具 举报
//t0  ,t1  ,t2  三个数,提取最大值,可以用if else 语句来理解:
      if (t0 >= t1) //t0比t1大吗?大,就看if大括号里面的代码,否则,看else里面的代码。
        {
               if (t0 >= t2)//t0比t2也大吗?大,最大值即为t0,否则,为t2.
                  {
                          Max = t0;
                  }
                else (t0 < t2)
                  {
                          Max = t2;  
                  }
         }
        else (t0 < t1)
         {
              if (t1 >= t2)
                  {
                          Max = t1;
                  }
                else (t1 < t2)
                  {
                          Max = t2;  
                  }
         }

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报
三元运算符格式:(a>b)?a:b

e=(t[0]>=T[1])?((T[0]>=T[2])?T[0]:T[2]) :((T[1]>=T[2])?T[1]:T[2])
这个东西其实很简单,它可以分为三个部分
第一部分:(t[0]>=T[1])
        这部分相当于:(a>b)
第二部分:((T[0]>=T[2])?T[0]:T[2])
        这部分相当于:a
第三部分:((T[1]>=T[2])?T[1]:T[2])
        这部分相当于:b

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报
楼主,你好!
如果您的问题解决了,请把您问题的未解决更改为已解决!
谢谢合作!
回复 使用道具 举报
分成三段式的:
         e = (t[0] >= T[1]) ?                           ((T[0] >= T[2]) ? T[0] : T[2])
                                 :((T[1] >= T[2]) ? T[1] : T[2])


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马