1樓:匿名使用者
首先if(a>b>c)
是不行的,有語病,只能if(a>b&&b>c)如果非要選的話
if的邏輯判斷是成立的
所以執行a=b
所以選b
int a=3,b=2,c=1; if(a>b>c)a=b; else a=c; 則a的值為
2樓:匿名使用者
1.先比較a>b,結果為真,返回1,但1小於c,所以a=1
3樓:色啦波
2~~~~~~~~~~~~~~~~~
int a=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;則a的值為3。對嗎
4樓:匿名使用者
授人魚不如授人漁bai。
我來幫你分析
du吧,
a=1,b=2,c=3
1、 如果a大於zhib 那麼dao b賦值給a,(2肯定比1大 是不是?明顯
回不成立,跳過,不答理它)
接下來2、如果a大於c 那麼c賦值給a,(明顯1不大於3嘛,所以還是不管他)
最終結果 a 還是最開始的時候的值,那就是1.
c語言中int a=1,b=2,c=3; c=(a+=a+2),(a=b,b+3); printf
5樓:匿名使用者
c語言copy提供一種特殊的運算子——逗號運算子。用它將兩個表示式連線起來。如:
3+5,6+8
稱為逗號表示式,又稱為「順序求值運算子」。逗號表示式的一般形式為表示式1,表示式2
逗號表示式的求解過程是:先求解表示式1,再求解表示式2。整個逗號表示式的值是表示式2的值。例如,上面的逗號表示式「3+5,6+8」的值為14。又如,逗號表示式
a=3*5,a*4
對此表示式的求解,讀者可能會有兩種不同的理解:一種認為「3*5,a*4」 是一個逗號表示式,先求出此逗號表示式的值, 如果a的原值為3,則逗號表示式的值為12,將12賦給a, 因此最後a的值為12。另一種認為:
「a=3*5」是一個賦值表示式」,「a*4」是另一個表示式,二者用逗號相連,構成一個逗號表示式。這兩者哪一個對呢?賦值運算子的優先順序別高於逗號運算子, 因此應先求解a=3*5(也就是把「a=3*5」作為一個表示式)。
經計算和賦值後得到a的值為15,然後求解a*4,得60。整個逗號表示式的值為60。
6樓:匿名使用者
c=(a+=a+2),(a=b,b+3);
->c=(a+=a+2);(a=b,b+3);
->c=(a+=a+2);a=b;b+3;
7樓:焚香木弋
int a=1,b=2,c=3;
c=(a+=a+2),(a=b,b+3);
相當於兩個順序語句:
先執行了c=(a+=a+2)這個語句得出c=a=a+1+2=4;
然後執行a=b,b+3;得出a=b=2;後面專的b+3單純是迷惑人
屬而已,不起作用。
所以輸出的答案是a=2,b=2,c=4;
8樓:沫宸萱
樓主自己敲下**執行結果不就知道了?
9樓:康康
2,2,4
可以自己編譯跑一下啊,比來問以後效率得多
c語言 假定int a=3,b=2 c=1 表示式(c==a>c)+(a/b/2.0)的值是多少
10樓:匿名使用者
分析:首先(c==a>c):右結合。因為c=1,a=3,因此,a>c返回1,c==1返回1
然後,a/b/2.0,左結合。a/b,結果商為1,1/2.0的結果是0.5,1+0.5=1.5
最終結果1.5
11樓:匿名使用者
可以寫程式執行一下
#include"stdio.h"
main()
執行一下是1.500000
int a=3,b=2,c=1 f=a>b>c 和f=(a>b>c)有區別嗎? 為什麼第一個f的值為1?
12樓:匿名使用者
int a=3,b=2,c=1 f=a>b>c 和f=(a>b>c)有區別嗎?bai
為什麼第一個
duf的值為1?
f=a>b>c
這裡=號的先zhi優級最低,這兩句
dao是一樣的效是的
你說值為1不是專吧,我的程
屬序輸出是0的,而且我的分析也是為0
f=(a>b>c)這個是先比較a,b然後拿這個結果和c 比較最後把結果賦值給f的
a>b 結果是1,然後再把1和c比較,沒有比c大,所以為0,最後f為0
main( ) { int a=1,b=2,c=3; printf(「%d」,c>b>a); }
13樓:疑問太多的人
是這樣子的
如果單獨只printf("%d",c>b);//或者是b>a輸出是1但是數學上的表示式c>b>a直接放到計算機裡面,解析的過程是不一樣的先判斷c>b返回真假,為真即為1,為假即為0c>b結果是1 然後再繼續 1>a結果為零。
再不然,你把a初始化為0,結果為1
14樓:匿名使用者
因為c>b>a是一個關係表示式,關係表示式只會返回兩個值,一個是true 一個是false
c>b>a的關係是不成立的所以返回false 在c和c++中0代表false假 1代表true真
15樓:
他是這麼判斷的先判斷c>b這個是假的返回0,然後用0和a比較也是假的,所以輸出0
16樓:匿名使用者
上面說的就是了,我就隨便逛逛,推薦你去弄本基礎書看看
17樓:匿名使用者
這是c語言的特點,另外》從左到右的
18樓:匿名使用者
你改下格式printf(「%d>%d>%d」,c,b,a); 試試
19樓:偶韋中悅
輸出結果應該是1
c=a,把a的值賦給c,c不等於0,所以if條件為真,輸出c
也是就1了.
int a=1,b=2,c=3;if(a>c)b=a;a=c;c=b;則c的值為
20樓:指春秋
if(a>c)b=a為if語句,因為a=1,c=3不成立,未設定else語句,跳出if判定,轉而執行a=c;c=b。所以c=b=2
21樓:豆豆小米朵兒
c的值是2
注意if(a>c)b=a;
這是一句
正確的格式:
int a=1,b=2,c=3;
if(a>c)
b=a;
a=c;
c=b;
c語言, int a=1,b=2,c=3,d=4; if((a=2)&&(b=1)) c=2;
22樓:匿名使用者
int a=1,b=2,c=3,d=4;
if((a=2)&&(b=1)) c=2;
a=2表示賦值2給a,同時檢查結果2是不是真, 當然是,所以又檢查b=1,
b=1 同上,結果也是真,所以執行c=2;
if((c==3)||(d==-1)) a=5;
c=2!=3 ,d=4!=-1,所以不執行a=5;
printf("%d,%d,%d,%d\n",a,b,c,d);
正確結果為:2 1 2 4
如果你的答案是5 1 2 -1,則說明你if((c==3)||(d==-1)) a=5;這句寫錯了,
應該是if((c==3)||(d=-1)) a=5; 是d=-1不是d==-1
c=2!=3為假,因為是||或關係,所以會再判斷d=-1,-1非0為真,會執行a=5
這樣結果為
a=5 b=1 c=2 d=-1
23樓:匿名使用者
我執行的結果是2,1,2,4
第一個if中a=2(b=1)是賦值,和a==2(b==1)是不一樣的
24樓:匿名使用者
if((a=2)&&(b=1)) 相當於if(2&&1) ,結果很明顯
25樓:雪月靈妖
1.結果是: 2,1,2,4
不知道你為什麼是5,1,2,-1
2.if((a=2)&&(b=1))
a=2 => 2 真
b=1 => 1 真
int a 1,b 2,c 3,d 0 if a 1 b2 if bc3 printfd d結果為什麼不是1,
第一句if。a 1和b 都為真du。所以執行zhiif b 0 c 3 dao但是b 2先判斷b是否為2,後b自加1,所以內b 3,答案1,3,3 c不減1是因為if b 0 c 3 這個容if是或運算,在c語言中或運算只有在 之前的表示式不為真的時候在進行 後面的表示式計算,而上面是 之前的表示式...
c語言設inta3,b2,c1,表示式abc的值是多少
0 因為關係運算子是左結合的,a b c等價於 a b c,由於a b成立得1,而1 c不成立得0。設int a 3,b 2,c 1 表示式a b c的值是 0,false 因為 3 2為真,即為1,而 1 1為假,即false c語言中int a 3,b 2,c 1執行if a b c a b e...
若有定義 int a 3,b 2,c 1並有表示式 a b,abc,b c 1,c 1,則表示式值相等的是哪兩個
表示式一值為1,表達二好象有錯誤,不能那樣表示,應寫成a b b c,這樣寫二式為真,值為1,三式且符號兩邊都非零,都為真,所以三式值為2,四式為賦值語句,最終結果是c的值為2 第一個 a b 輸出結果為 1 第二個 a b c為真,3 2為真 即為1,但1 1為假 即為0第三個 b c 1 先算c...