1樓:墨汁諾
選擇運算,就是a:b?c那個。
三目運算子為a?b:c即有三個參與運算的量。由條件運算子組成條件表示式的一般形式為:
其求值規則為:如果表示式1的值為真,則以表示式2的值作為條件表示式的值,否則以表示式2的值作為整個條件表示式的值。 條件表示式通常用於賦值語句之中。
2樓:尋涵衍歷氣
就是「?」和「:」。
這2個符號中有3個點,就叫3目。。。。用法舉例「你比他帥?你:
他」如果問號前是真的,那麼輸出的就是冒號前的,即「你」,如果你沒他帥,則輸出冒號後面的即「他」。這是相當於if
else--
3樓:單語絲閔運
三目運算子為a?b:c
即有三個參與運算的量。由條件運算子組成條件表示式的一般形式為:
表示式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又是一個條件表示式。
void
main()
用條件表示式對上例重新程式設計,輸出兩個數中的大數。
c語言中三目運算子是什麼?
4樓:匿名使用者
三目運算子為a?b:c即有三個參與運算的量。由條件運算子組成條件表示式的一般形式為:
表示式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又是一個條
件表示式。
void main()
用條件表示式對上例重新程式設計,輸出兩個數中的大數。
5樓:匿名使用者
表示式1? 表示式2: 表示式3
這是語法格式 打個比方if(a>1) b=1;else b=2;這是一個很簡單的判斷 如果用三目運算子 就可以寫成b=(a>1)?1:2;可以理解為 a>1 是個判斷條件 如果為真 b就等於1 不為真 就等於2比上面的**簡單 提高執行效率
6樓:匿名使用者
選擇運算,就是a:b?c那個。
c語言 三目運算子
7樓:匿名使用者
不帶括號,實際上是這樣的效果(","優先順序略低,一般都是最後執行咯)。 temp<=n ? (temp *= 2,m++):
(temp = (temp-n)*2-1),m++; 也就是說,不帶括號,你tempn是沒問題的。帶括號,自己比較好理解。然後,你如果想寫的高大上,簡單點又正確,可以只加後面一個括號。
即下面的方式。 temp<=n ? temp *=2,m++:
(temp=(temp-n)*2-1,m++) 個人是非常不建議這麼些,**給別人看挺麻煩。
8樓:
)前面的逗號先去掉
最後面)後的分號也去掉
c語言中唯一的一個三目運算子是什麼
9樓:匿名使用者
?:是c語言唯一的一個三目運算子,a?b:c相當於if...else語句
c語言,三目運算子
10樓:匿名使用者
char buff;
int res = (buff >= '0' && buff <= '9') ? (buff - '0') : (buff - 'a' + 10);
就這樣。。。。
11樓:兔子和小強
#include
isdigit(ch)? ch-'0': ch-'a'+10
12樓:
比如輸入的字元存入a中 三目應該是這樣
(a>='a'&&a<='e')?a-'a'+10:a-'0'; //小寫字母表示
c語言?:三目運算子用法問題。
13樓:
不帶括號,實際上是這樣的效果(","優先順序略低,一般都是最後執行咯)。
temp<=n ? (temp *= 2,m++):(temp = (temp-n)*2-1),m++;
也就是說,不帶括號,你temp<=n成立時候,m++總是會執行兩次,當然對於temp>n是沒問題的。
帶括號,自己比較好理解。
然後,你如果想寫的高大上,簡單點又正確,可以只加後面一個括號。即下面的方式。
temp<=n ? temp *=2,m++:(temp=(temp-n)*2-1,m++)
個人是非常不建議這麼些,**給別人看挺麻煩。
14樓:匿名使用者
三目運算子為a?b:c即有三個參與運算的量。由條件運算子組成條件表示式的一般形式為:
表示式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又是一個條
件表示式。
void main(){
int a,b,max;
printf("\n input two numbers: ");
scanf("%d%d",&a,&b);
printf("max=%d",a>b?a:b);
15樓:匿名使用者
三目運算: 條件?值1:值2,是根據條件的值分別值1或值2
對於本題就是依據你的取值,分別取(temp *= 2, m++) 和(temp = (temp - n)*2-1, m++)
若把?:中:前後的兩個()去掉,會出現錯誤!
16樓:匿名使用者
運算子是有運算順序的。
比如你上面括號裡面的*運算子優先順序高於=,++也高於三目運算子。推薦你看一下運算子優先順序。
就這個程式而言,主要問題是,逗號運算子優先順序比三目運算優先順序還低,去掉括號後,造成先做了三目運算,後做逗號運算。
希望這個回答對你有幫助。
17樓:8棒棒鼠
運算是分級別的,人看不懂,電腦也就會看錯
18樓:煙禎鄂雨
表示式1?表示式2
:表示式3
這個三目運算子的作用是:如果表示式1成立,則取表示式2的值,否則取表示式3的值
上面的式子等價於:
a=3,b=4;
(a>b)?(
(b>=2)?1:2):(
(a>b)?2:1
);由於a>b不成立,所以執行
(a>b)?2:1;
由於a>b不成立,所以取1
c語言?三目運算子用法問題,C語言? 三目運算子用法問題。
不帶括號,實際上是這樣的效果 優先順序略低,一般都是最後執行咯 temp n temp 2,m temp temp n 2 1 m 也就是說,不帶括號,你temp n成立時候,m 總是會執行兩次,當然對於temp n是沒問題的。帶括號,自己比較好理解。然後,你如果想寫的高大上,簡單點又正確,可以只加...
c語言中運算子是取整運算子嗎,C語言中「 」運算子是取整運算子嗎?
終極至尊粉 printf f,f 10.0 3,10.0 3 雙目運算具有左結合性。參與運算量均為整型時,結果也為整型,捨去小數。如果運算量中有一個是實型,則結果為雙精度實型。printf d,d 10 3,10 3 printf f,f 10.0 3,10.0 3 c語言有以下幾種取整方法 1 直...
c語言關係運算子,c語言中關係運算子和自加自減運算優先順序哪個高
蘇嘉愛娛樂 是右移運算子,移位運算子的一種 程式設計中,位操作運算子的一種。c語言中位移位運算子是將資料看成二進位制數,對其進行向左或向右移動若干位的運算。位移位運算子分為左移和右移兩種,均為雙目運算子。第一運算物件是移位物件,第二個運算物件是所移的二進位制位數。位移位運算子的運算物件 運算規則與結...