C三目運算子問題關於c三目運算子的問題

2021-03-07 21:50:31 字數 3838 閱讀 8073

1樓:匿名使用者

三目運算就是下面這算式了

a>="a"&&a<="z")?(a+32):a它的意思是:a代表的字元在小寫字母'a'和'z'之間嗎?如果是,運算結果是a+32;如果不是,結果是a

這段程式應該是字母大小寫轉換,但有點問題。如果是想把小寫轉成大寫,後面應該是(a-32);如果是想把大寫轉成小寫,引號裡應該是大寫字母a和z

2樓:匿名使用者

語法錯誤a>="a"&&a<="z":應該是a>='a'&&a<='z'吧,如果雙引號應該就表示是字串了,所以應該是單引號。

如果想轉換大小寫a+32,應該改為a-32,好像是a=96,a=64。

三目運算子的意思就是:如果變數a 在字元'a'與'z'之間,就返回a+32的值,如果不是,則返回a的值。

然後再將返回的值賦給變數a。

3樓:匿名使用者

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又是一個條件表示式。

4樓:匿名使用者

a=(a>="a"&&a<="z")為真,就把a+32賦給a;為假,把a賦給a,即不變,然後輸出a。。

5樓:匿名使用者

這是三目運算的形式

表示式1 :? 表示式2:表示式3

先判斷表示式1 是否為真 如果為真 則執行表示式2 否則執行表示式3

所以暱所給題目中 應先判斷?號前的表達真假 真則:a+32 假則:a

?號前 為一個邏輯表示式 加一個賦值語句 先看邏輯表示式真假 將其值賦給a

因為前面為真 所以執行 a+32

注意 此時 a的值已與原來不同

6樓:匿名使用者

那是a+32麼。。好像應該是減吧。。。

7樓:匿名使用者

如果你想把小寫轉成大寫,要寫成(a-32)

關於c++三目運算子的問題

8樓:

可以這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,原理如上。

9樓:匿名使用者

表示式中 存在 賦值(=)  算術加(+)  算術加(-) 和 條件運算子(?:) 四種運算子

其中 賦值 的 優先順序最低,專條件運算子略高,算術運屬算符最高所以有d =

a + b

?c = ( d - a ? a : c ):b;運算過程等價於

if (a + b)

d = c;

} else

10樓:手機使用者

計算結果8,三目運算

符是這樣的:a?b:

c,若a表示式為真,則三目運算子結果為版b表示式的結果, 若權a為假,則為c的結果,那麼9>1.88為真,那麼三目運算式結果為a,也就是sizeof(a),還有型別轉換,比較時把整形的變成double型的,結果為double的sizeof為8

11樓:匿名使用者

賦值運算子的優先順序低於三目運算子,因此語句定價於:

d = ( (a+ b) ? ( c=((d-a)?a:c)) :b);

c語言三目運算子問題。

12樓:陌上

如果y值為0則輸出的是後面的「no」然後回車,如果不為0則直接輸出回車。判斷語句中0為假。不為0為真。

c++三目運算子的問題

13樓:匿名使用者

函式的定義

《修飾符》 《返回值型別》 《函式名稱》(引數列表)

c2059 並不是關鍵字,不能作為修飾符。

14樓:匿名使用者

c2059-int empty()/*判斷鏈bai佇列

du是否zhi為空

dao內*/

改為:容

int empty()

c++中三目運算子是什麼,怎麼用

15樓:匿名使用者

三目運算子是?:結構的運算

所謂三目就是需要三個變數進行運算的操作。版它等權價於短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)

16樓:匿名使用者

三目運算就是下面這算式了

a>="a"&&a<="z")?(a+32):a它的意思是:a代表的字元在小寫字母'a'和'z'之間嗎?如果回是答,運算結果是

a+32;如果不是,結果是a

這段程式應該是字母大小寫轉換,但有點問題。如果是想把小寫轉成大寫,後面應該是(a-32);如果是想把大寫轉成小寫,引號裡應該是大寫字母a和z

17樓:匿名使用者

x = p? q: r; 相當於是 if(p) x=q; else x=r;

cout << p? q: r; 相當於是 if(p) cout << q; else cout << r;

C三目運算子的問題,C中三目運算子是什麼,怎麼用

函式的定義 修飾符 返回值型別 函式名稱 引數列表 c2059 並不是關鍵字,不能作為修飾符。c2059 int empty 判斷鏈bai佇列 du是否zhi為空 dao內 改為 容 int empty c 中三目運算子是什麼,怎麼用 三目運算子是?結構的運算 所謂三目就是需要三個變數進行運算的操作...

C語言中怎樣理解三目運算子條件運算子的右結合性

這裡涉及了c中的優先順序 結合性 求值順序。結合性只有在相同優先順序的運算子間才起作用,比如a b c,與 優先順序不同,這裡根本不用去管結合性。而a b c則需要進行結合性考慮了,如果 為左結合性,那麼應該理解為 a b c,如果 為右結合性,那麼應該理解為a b c 當然了,我們已經知道 為左結...

c語言關於運算子的問題

在前九先執行j後在加,比方j 1 1 j 則先是1 j,當然1 j 2了,然後是執行j 這時j 2了,如果是1 j j的話,結果就改是1 1 2 4了,你推敲下是不是這樣 int m,j 5,t t j j j j 6 6 8 8 這裡我用vs2005編譯的是28,9,和你的26,9部一樣,這個可能...