1樓:
可以這bai麼分割:
d = ( a+b? ( c=d-a?a:c) : b)意思是這樣第du
一個三木運算子如zhi果a+b非零結果則 d = ( c=d-a?a:c ) ,為零則dao為版d = b;
第二個,先權令c = d - a ,然後同理 c 非零結果為 a ,為零則結果為c ,你可以自己測幾組資料試試,不明白可以追問。
比如:int a = -1 , b = 2 , c = 3 , d= -1;
d=a+b?c=d-a?a:c:b;
此時結果為3,原理如上。
2樓:匿名使用者
表示式中 存在 賦值(=) 算術加(+) 算術加(-) 和 條件運算子(?:) 四種運算子
其中 賦值 的 優先順序最低,專條件運算子略高,算術運屬算符最高所以有d =
a + b
?c = ( d - a ? a : c ):b;運算過程等價於
if (a + b)
d = c;
} else
3樓:手機使用者
計算結果8,三目運算
符是這樣的:a?b:
c,若a表示式為真,則三目運算子結果為版b表示式的結果, 若權a為假,則為c的結果,那麼9>1.88為真,那麼三目運算式結果為a,也就是sizeof(a),還有型別轉換,比較時把整形的變成double型的,結果為double的sizeof為8
4樓:匿名使用者
賦值運算子的優先順序低於三目運算子,因此語句定價於:
d = ( (a+ b) ? ( c=((d-a)?a:c)) :b);
c++ 三目運算子問題
5樓:匿名使用者
三目運算就是下面這算式了
a>="a"&&a<="z")?(a+32):a它的意思是:a代表的字元在小寫字母'a'和'z'之間嗎?如果是,運算結果是a+32;如果不是,結果是a
這段程式應該是字母大小寫轉換,但有點問題。如果是想把小寫轉成大寫,後面應該是(a-32);如果是想把大寫轉成小寫,引號裡應該是大寫字母a和z
6樓:匿名使用者
語法錯誤a>="a"&&a<="z":應該是a>='a'&&a<='z'吧,如果雙引號應該就表示是字串了,所以應該是單引號。
如果想轉換大小寫a+32,應該改為a-32,好像是a=96,a=64。
三目運算子的意思就是:如果變數a 在字元'a'與'z'之間,就返回a+32的值,如果不是,則返回a的值。
然後再將返回的值賦給變數a。
7樓:匿名使用者
a=(a>='a'&&a<='z')?(a-32):a功能將a中的字母小寫轉換為大寫
a=(a>='a'&&a<='z')?(a+32):a功能將a中的字母大寫轉換為小寫
條件運算子和條件表示式
如果在條件語句中,只執行單個的賦值語句時, 常可使用條件表示式來實現。不但使程式簡潔,也提高了執行效率。
條件運算子為?和:,它是一個三目運算子,即有三個參與運算的量。
由條件運算子組成條件表示式的一般形式為:
表示式1? 表示式2: 表示式3
其求值規則為:如果表示式1的值為真,則以表示式2 的值作為條件表示式的值,否則以表示式2的值作為整個條件表示式的值。
條件表示式通常用於賦值語句之中。
例如條件語句:
if(a>b) max=a;
else max=b;
可用條件表示式寫為
max=(a>b)?a:b;
執行該語句的語義是:如a>b為真,則把a賦予max,否則把b 賦予max。
使用條件表示式時,還應注意以下幾點:
1) 條件運算子的運算優先順序低於關係運算子和算術運算子,但高於賦值符。
因此 max=(a>b)?a:b
可以去掉括號而寫為
max=a>b?a:b
2) 條件運算子?和:是一對運算子,不能分開單獨使用。
3) 條件運算子的結合方向是自右至左。
例如:a>b?a:c>d?c:d
應理解為
a>b?a:(c>d?c:d)
這也就是條件表示式巢狀的情形,即其中的表示式3又是一個條件表示式。
8樓:匿名使用者
a=(a>="a"&&a<="z")為真,就把a+32賦給a;為假,把a賦給a,即不變,然後輸出a。。
9樓:匿名使用者
這是三目運算的形式
表示式1 :? 表示式2:表示式3
先判斷表示式1 是否為真 如果為真 則執行表示式2 否則執行表示式3
所以暱所給題目中 應先判斷?號前的表達真假 真則:a+32 假則:a
?號前 為一個邏輯表示式 加一個賦值語句 先看邏輯表示式真假 將其值賦給a
因為前面為真 所以執行 a+32
注意 此時 a的值已與原來不同
10樓:匿名使用者
那是a+32麼。。好像應該是減吧。。。
11樓:匿名使用者
如果你想把小寫轉成大寫,要寫成(a-32)
c語言三目運算子問題。
12樓:陌上
如果y值為0則輸出的是後面的「no」然後回車,如果不為0則直接輸出回車。判斷語句中0為假。不為0為真。
c++中三目運算子是什麼,怎麼用
13樓:匿名使用者
三目運算子是?:結構的運算
所謂三目就是需要三個變數進行運算的操作。版它等權價於短if-else操作。
舉個簡單的例子:
c=a>b?a:b
這可分成幾個部分,用括號分開:
(a=)(2>1)?(3):(4)
最左邊是賦值操作
第二個部分是一個判斷
第三和第四部分是兩個常數
首先判斷第三部分是否成立,成立即選擇第三部分,否則選擇第四部分它相當於
if(a>b)
c=a;
else
c=b;
上面的例子用於獲得a和b的最大值。
這種運算還可以巢狀
比如判斷year是不是閏年,是則返回1,不是返回0flag=(year%100==0)?(year%400==0?1:0):(year%4==0?1:0)
14樓:匿名使用者
三目運算就是下面這算式了
a>="a"&&a<="z")?(a+32):a它的意思是:a代表的字元在小寫字母'a'和'z'之間嗎?如果回是答,運算結果是
a+32;如果不是,結果是a
這段程式應該是字母大小寫轉換,但有點問題。如果是想把小寫轉成大寫,後面應該是(a-32);如果是想把大寫轉成小寫,引號裡應該是大寫字母a和z
15樓:匿名使用者
x = p? q: r; 相當於是 if(p) x=q; else x=r;
cout << p? q: r; 相當於是 if(p) cout << q; else cout << r;
c++ 三目運算子是什麼
16樓:砍侃看
#include
int main()
a>b?a:b;
其實dao就相當回於
答if(a>b)
return a;
else
return b;
17樓:fly愛與希望
就是唯一的那個吧
條件?滿足時 。。。。。。。:不滿足時。。。。。。。。。
c++三目運算子的問題
18樓:匿名使用者
函式的定義
《修飾符》 《返回值型別》 《函式名稱》(引數列表)
c2059 並不是關鍵字,不能作為修飾符。
19樓:匿名使用者
c2059-int empty()/*判斷鏈bai佇列
du是否zhi為空
dao內*/
改為:容
int empty()
c++三目運算子?:是幹嘛用的?
20樓:匿名使用者
三目運算子《表示式1>?《表示式2>:《表示式3>; ,屬於關係運算子,
常用於關係比較,主要用於比較關係的狀態只有兩種的情況(大於 和 不大於,真 和 假)
先求表示式1的值, 如果為真, 則執行表示式2,並返回表示式2的結果 ; 如果表示式1的值為假, 則執行表示式3 ,並返回表示式3的結果
比如以下表示式:
a>0? a++:(a = 1)
當a>0為真 時,執行a++,整個表示式的值等於表示式a++的值,當a>0為假 時,執行a=1,整個表示式的值等於表示式a=1的值。
21樓:匿名使用者
a>b? a:b
等價於if(a>b)
print("%d",a);
else
print("%d",b);
22樓:匿名使用者
相當於一個條件判斷。
23樓:匿名使用者
比如說max=a>b?a:b ; 如果a>b,max就等於a,反之等於b
C語言中怎樣理解三目運算子(條件運算子)的右結合性
這裡涉及了c中的優先順序 結合性 求值順序。結合性只有在相同優先順序的運算子間才起作用,比如a b c,與 優先順序不同,這裡根本不用去管結合性。而a b c則需要進行結合性考慮了,如果 為左結合性,那麼應該理解為 a b c,如果 為右結合性,那麼應該理解為a b c 當然了,我們已經知道 為左結...
C 中三目運算子是什麼,怎麼用
三目運算子是?結構的運算 所謂三目就是需要三個變數進行運算的操作。版它等權價於短if else操作。舉個簡單的例子 c a b?a b 這可分成幾個部分,用括號分開 a 2 1 3 4 最左邊是賦值操作 第二個部分是一個判斷 第三和第四部分是兩個常數 首先判斷第三部分是否成立,成立即選擇第三部分,否...
C語言單目運算子的結合性問題,C語言中,逗號運算子和條件運算子還有單目運算子有沒有結合性
c a b 等價於 a b你說的 a b 為什麼不是 a b 是因為編譯器解釋一行 的先後順序,編譯器在解析 時是按從左到右的順序來的。在碰到 字母 a 後,向右解析,發現了 a 這兩個字母,a 中的 可以是 號運算子,也可以是 自增運算子,編譯器不能確定,只能再向右解析,又碰到一個 就變成了 a ...