c語言當中,這個表示式該怎麼求da》ba》cac

2021-03-03 22:55:08 字數 2944 閱讀 2375

1樓:匿名使用者

首先普及下基礎bai知識 ?:語句du

先判斷?前的

語句,是zhi真取『

dao?』後,『:』前的表示式為回結果,是假答的話取『:』後的表示式為結果

先判斷a>b 是真的話則執行:前的a>c?a:c,再判斷a>c,是真的話結果為a,是假的話結果為c如果先前的a>b是假的話,結果為b

2樓:匿名使用者

先比較a是否大於b,不大於的話表示式就直接等於b,

大於b的話再計算小括號裡面的(a>c?a:c),就是當a大於c的時候返回a,a小於等於c的時候等於c,大概就這樣

3樓:千江月

這樣來理解就源行,把?: 轉化成 if else即if(a>b)

else

}else

c語言環境中,設a=1,b=2,c=3,d=4,則表示式:a>b?a:c>d?a:d的結果為( )

4樓:lovefree隨風

表示式:a>b?a:c>d?a:d的結果為4。

解析:1、由於c語言的相同優先順序運算子運算規則為從左至右依次運算,而條件運算子具有右結合性,所以表示式:a>b?

a:c>d?a:

d優先運算c>d?a:d,得出的結果為4;

2、再運輸a>b?a:4,得出的結果為4。

所以最終得出的結果為4。

擴充套件資料表示式為:表示式1?表示式2:表示式3

先求解表示式1,

若其值為真(非0)則將表示式2的值作為整個表示式的取值,否則(表示式1的值為0)將表示式3的值作為整個表示式的取值。

例如:1、max=(a>b)?a:b,就是將a和b二者中較大的一個賦給max。

2、min=(a條件運算子具有右結合性

當一個表示式中出現多個條件運算子時,應該將位於最右邊的問號與離它最近的冒號配對,並按這一原則正確區分各條件運算子的運算物件。例如:

5樓:匿名使用者

結果是4,一會寫出過程

「?:" 這是一個三目運算子,以 「c>d?a:

d」這個**為例,程式會首先判斷「c>d」是否為真,若為真則執行冒號前的語句,即其結果為」a「的值;若為假,則執行冒號後的語句,即其值為"d"的值。

一般遇到這樣的題要拆分著做,首先判斷最左邊的「a>b」,這個結果為假,根據條件判斷運算子的性質,所以接下來執行第一個冒號後的語句「c>d?a:d」,接著判斷「c>d」,結果為假,所以最終取值為第二個冒號後的值,即為d的值,也就是4。

6樓:匿名使用者

答案為4,「a?b:c」是從右向左執行的,也就是說a為真的話,這個式子就可以看做b,否則可以看做c;c大於d麼,不是,則變成了a>b?

a:d,a大於b麼,不是,則為d,d=4.

7樓:匿名使用者

答案是4.三目運算子就可求得

c語言中,max=(a>((b>c)?b:c)?a:(b>c:b:c)); 解釋下這句什麼意思

8樓:匿名使用者

? : 是 c 語言裡唯一的三目運算子,作用是先判斷 ? 前面的表示式是否為真,如為真,則表示式的值為 ? 和 : 之間的值,否則為 : 之後的值。

先看第一個, (b>c)?b:c 先判斷 b 是否大於c,如果是,值為 b,否則為 c,可以理解為求 b 和 c 的最大值。

然後再看 (a>((b>c)?b:c) ?

a : (b>c:b:

c)) ,有了前面的基礎,可以看出中文問號 ? 前面的是判斷 a 是否大於 b、c 中較大的那一個,如果 a 比 b、c 都大,那麼表示式的值就是 a,如果 a 比 b 小或者比 c 小,那麼表示式的值就是 : 後面的部分,仔細一看還是 b 和 c 中的較大者。

整理一下思路,如果 a 比 b、c 都大,那麼結果為 a,是 a、b、c 中的最大值;如果 a 比 b 或者 c 小,說明 a 不是三者中最大的,此時結果是 b、c 中較大的那一個,顯然這才是 a、b、c 中的最大值。最後再把這個值賦給 max。

故這段話的意思是,求出 a、b、c 中最大的那個數,並把它賦給變數 max。

9樓:豪魃

這是三目運算子

《表示式1>?《表示式2>:《表示式3>; "?

"運算子的含義是: 先求表示式1的值, 如果為真, 則執行表示式2,並返回表示式2的結果 ; 如果表示式1的值為假, 則執行表示式3 ,並返回表示式3的結果.

10樓:于于祥祥

先判斷一下b是否大於c,如果大於c,則(b>c)這個表示式取1,然後用a與1比較,若a>1,則max=a,若a<1則取max=(b>c?b:c);如果小於c,則(b>c)為0,然後用a與0比較,若a>0,則max=a,若a<0則取max=(b>c?

b:c)

希望對你有幫助

11樓:13孤島

應該是這樣吧max=(a>((b>c)?b:c)?

a:(b>c?b:

c)); 求最大的數,(b>c)?b:c這句意思是b大於c是否是真如果是則b大於c最大值現在是b否則c大於b最大值現在是c。

然後a>((b>c)?b:c)?

a:(b>c?b:

c)),若果a大於表示式((b>c)?b:c)運算的結果則a為最大值返回值a給max,否則運算表示式(b>c?

b:c))測試b>c是否是真若果是則b為最大值然後返回值b給max否則c為最大值然後返回值c給max。

12樓:匿名使用者

我給你翻譯一下,最後倒數第二個:該為?吧。你的**等價於下面的**,是求最大值的:

if (b>c)else

if(b>c)

else

if(a>m)

else

根據最後的變數都知道是求a b c中的最大值,建議不要那樣寫。

c語言關於表示式求值,C語言關於表示式求值

c語言有豐富的表示式,這是它的特點之一,表示式主要有4類,算術表示式,賦值表示式,逗號表示式,關係表示式 1.算術表示式就是包含算術運算子 如 等 的表示式 不是語句,後面沒有分號 如 a b a b,a b c d,3 5等,算術表示式的值就是最後算出的結果,如3 5這個表示式的值就是8 2.賦值...

C語言中表示式1表示式2表示式3為什麼不先算表示式2急急急

在c語言中,或 的優先順序低於與 的優先順序,也就是說,無論表 達式1,表示式2,表示式3的值是真或者是假,都是做以下關係運算 表示式1的值 表示式2的值 表示式3的值 和他們的具體值無關。你的說法是不對的,因為此邏輯表示式是先求出 右側的值,然後再與 左側的值作關係或運算,如果想先算前面可以在前兩...

c語言中怎麼算表示式的資料型別例如 表示式18 4 sqrt 4 0 8值的資料型別為什麼?謝謝

和 等於平時計算的除以 不取餘數 和乘以 然後sqrt 等於開方 18 4 sqrt 4.0 8 18除以4乘以2.0除以8 1.0 double 18 4 4 int與 int運算仍為 intsqrt 4.0 2.0 double 返回值的型別是函式sqrt定義的 18 4 sqrt 4.0 為i...