黑马程序员技术交流社区
标题:
菜鸟关于三目运算符的困惑,求大神指点
[打印本页]
作者:
Michael_xpd
时间:
2013-9-10 23:45
标题:
菜鸟关于三目运算符的困惑,求大神指点
本帖最后由 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
当时看到这么多三目运算符的嵌套使用,我直接晕了……
作者:
辛春鹏
时间:
2013-9-10 23:54
t0>=t1----t0>=t2---t0
t0<t2---t2
t0<t1-------t1>=t2---t1
t1<t2------t2
就是这个结构的了
作者:
焦允
时间:
2013-9-11 00:05
这个看上去是复杂,还好是加了括号的,
(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] 这样不就很容易看明白了。
作者:
大眼瞪小眼
时间:
2013-9-11 02:22
//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;
}
}
作者:
陶智第
时间:
2013-9-11 08:00
三元运算符格式:(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
作者:
杨增坤
时间:
2013-9-11 08:24
楼主,你好!
如果您的问题解决了,请把您问题的
未解决
更改为
已解决
!
谢谢合作!
作者:
Yuan先生
时间:
2013-9-11 08:44
分成三段式的:
e = (t[0] >= T[1]) ? ((T[0] >= T[2]) ? T[0] : T[2])
:((T[1] >= T[2]) ? T[1] : T[2])
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2