欢迎各界计算机爱好者加入,弘扬极客精神!

详细解释下下面的一行C语言代码

0 喜欢 0 不喜欢
e = (T[0] < T[1]) ? ((T[0] < T[2]) ? T[0] : T[2]) : ((T[1]<T[2])? T[1] :T[2]);

原本代码中小于号都是小于或等于,无所谓了

T为数组名字
最新提问 1月 31, 2016 分类:C/C++ | 用户: peter (9,844 分)  

2 个回答

1 喜欢 0 不喜欢
 
已采纳
从左数第一个等号的右边可以被拆解为以下五部分:

1. (T[0] < T[1])    

2. ?   

3. ((T[0] < T[2]) ? T[0] : T[2])   

4. :   

5. ((T[1]<T[2])?T[1]:T[2])

若1为真则3的值赋给e,反之1为假5的值赋给e

3和5道理相通,以3为例,T[0]<T[2]成立则取T[0]的值反之取T[2]的值

若T[0]=5,T[1]=3,T[2]=4,则e=3

应该就是酱。
最新回答 2月 2, 2016 用户: 我好像在哪见过你 (3,966 分)  
采纳于 2月 2, 2016 用户:peter
很久没有收到正确的又描述清晰的答案了,要是以前我早就采纳了,现在网站上问题太少,再过十几个小时采纳你的
1 喜欢 0 不喜欢
本式涉及了条件运算符的嵌套。写成了如下程序,希望能帮助理解

if(T[0]<T[1])

{     if(T[0]<T[2])

        { e=T[0]; }

       else {e=T[2];}

}

else

{     if(T[1]<T[2])

        { e=T[1]; }

       else {e=T[2];}

}
最新回答 2月 2, 2016 用户: leisure (2,152 分)  
...