int x 2,y 3 printfdxy 2 結果為3,是怎麼算的呀

2021-04-19 21:52:39 字數 2470 閱讀 6655

1樓:匿名使用者

首先(x<=y)是一個邏輯表示式,如果邏輯正確,表示式為1,錯誤表示式為0.現在x=2,y=3,所以(x<=y)邏輯是對的,所以為1. 1+2結果就是3麼。

2樓:匿名使用者

(x<=y)+2

程式首先執行括號中的語句,則2<=3為真,轉化為數值即是1,1+2=3

3樓:匿名使用者

研究了下x<=y在這起的作用像bool型別的判斷作用,滿足這個條件就是真也就是1,不滿足的話就是假就是0

4樓:匿名使用者

int x=2,y=3; printf("%d,",(x<=y)+2);

(x<=y)==true=1

(x<=y)+2=1+2=3

int x=3,y=2;則表示式printf(「%d」,(x-=y,x*=y+8/5));的結果是什麼

5樓:

逗號運算子順序執行

x-=y x=3-2=1

x*=y+8/5 x=1*2+1=3

所以結果為3

int x=1,y=2; printf("%d",x+y,x++,y++); 為什麼得的值是5,而不是2或者3.

6樓:匿名使用者

pirntf函式中的表示式的結合順序是由右向左,所以先算y++,再算x++,最後算x+y,因為只有一個%d,所以輸出對應的x+y的值為5

7樓:百劫度厄

標準c編譯器的話,應該是3,x++、y++是在所在語句執行完後再+1的,

即使是printf("%d",x+y,++x,++y);結果也為3,因為執行順序是從左至右,運算x+y時,xy還沒自加

不知道你用的什麼編譯器,是哪種c

8樓:

這可不一定是5,通常是3。請看:

9樓:匿名使用者

這個主要看編譯器編譯順序的問題

你看下這個問題就明白了

10樓:匿名使用者

vc++6.0執行結果是3

以前回答過這樣一個帖子,有空的話去看下。

11樓:

x和y都自增以後再相加的

12樓:匿名使用者

你是用tc編譯器吧。tc是5. vc是3

main() { int x=1,y=2,z=3; x+=y+=z; printf("%d",(x

13樓:匿名使用者

嗯,可以先抄看看要求輸出什麼襲

printf("%d",(x這是一個條件表示式,判斷x假就取y++x=1,y=2,z=3

x+=y+=z 是自右運算的,y=y+z=5 此時y=5x+=y x=x+y=1+5=6

然後判斷xy 所以條件是假值,取y++

這裡注意一下,要求輸出的是y 不是y的值

所以最後結果是5 但如果要求輸出y y的值就是6

14樓:難得當歌對酒時

x+=y+=z 等價於 y=y+z; x=x+y; 故此bai後 z=3,y=5,x=y;

故 x,故整個du條件表達

zhi式的值dao就是專 : 之後的子表示式的值,也即 y++ 表示式的值,後屬綴++表示式返回++之前的值,故輸出5

main {int x=1,y=2,z=3; z+=x>y?++x;++y; printf("%d",z); } 此程式的執行結果??

15樓:匿名使用者

執行結果為6

z+=x>y?++x;++y;

先處du理表達zhi式:

daox>y?++x;++y

由於x=1,y=2,所

以版x>y為假,表示式的值權等於++y,

由於y=2,所以++y等於3,所以表示式:x>y?++x;++y的值等於3

z+=x>y?++x;++y;轉化為z+=3;,也就是z=z+3,由於z=3,所以z=z+3=3+3=6

16樓:

1 程式來先改正:

void main() //本行少源()2 執行結果:dao6

17樓:匿名使用者

答案:6

int x=1,y=2,z=3;

z+=x>y?++x:++y; //中間冒號//先比較x>y? 為真,返回版++x,否則返回++y。

z += ++y;

++y先執行

權y+1,y = 3

z +=3 ====》 z = z + 3 = 6

定義 int x 3,y 4,z 5則表示式 x y z 1 y z

仍易闕鈴 c語言的優先順序 從上到下依次遞減 醋 初等,4個 指向結構體成員 結構體成員 壇 單目,9個 負號 型別 指標 取地址 sizeof長度 酸 算術,5個 減味 位移,2個 灌 關係,6個 等於 不等於 味 位邏,3個 按位與 按位異或 按位或 落 邏輯,2個 邏輯與 邏輯或 跳 條件,1...

已有定義 int x 3,y 4,z 5,則表示式 x

你這個是c語言吧。你可以看看布林值其他型別的轉換規則。表示式 x y z 1 y z 2的值只可能是0和1,也就是假和真。這裡是表示式條件滿足,所以是1。x y z 1和y z 2分別判斷是0還是1,然後再進行邏輯與 運算。c語言當中,整數轉布林值的時候是非0轉1,0轉0吧。按這個規則來的。x y ...

c語言如果有定義變數int x 3,y 4,z 4則表示式 zyx 1 0的值為什麼

z y x 1 0 判斷z y x的值,如果為1,則值為1,否則為0從左到右運算 z y即4 4,結果為1 true 然後1 x,即1 3,結果為0 false 所以表示式的值為0 z y x 1 0 這是個條件表示式,z y x 括號裡面是個複合關係表示式,先比較z y,表示式為真,而在內c語言中...