C語言問題,最後a的值為什麼不是2而是

2022-03-09 06:54:48 字數 666 閱讀 9759

1樓:

while的迴圈體只迴圈了一次,原因如下:

第一次判斷x++!=(y-=1),是比較x即3與(y-=1)即5的大小,然後x再加一,x變為4,

3!=5,成立,執行迴圈體,a變為1;

第二次判斷,x++!=(y-=1),是比較x即4與(y-=1)即4的大小,

4!=4,不成立,不執行迴圈體。

所以a為1.

2樓:

x++!=(y-=1)

上面這個表示式中,不等號左邊x++的值是3,右邊y-=1的值是5,因此執行迴圈體,a+=1,a的值為1。

再次對x++!=(y-=1)判斷,不等號左邊x++的值是4,右邊y-=1的值是4,不再執行迴圈。因此a的值為1。

3樓:匿名使用者

我剛才試了一下,確實是1,因為迴圈只進行了一次,原因就在於x++!=(y-=1)這句話,這句話的邏輯是這樣的:1.

先把y的值減1再賦給y,第一次y的值變成5。2.y的值與x的值進行比較,不相等則進入迴圈,這時x=3,y=5。

3.將x的值加1再賦給x,這時x的值變成4.

第二次判斷迴圈條件時也是這樣:1.y的值減1變成4 2.x與y相比較,都是4,不進行迴圈 3.x的值加1,變成5

於是就有了上面的結果。。。

C語言的問題,C語言問題。。。

呵呵,除了第三題,其他都不容易。有空的編吧,我看著 如果你真正掌握了c語言,其實也不是很難 c語言問題。double 在輸入 輸出時,要使用 lf 格式符。scanf lf lf f1,f2 include int main else for i lower i upper 2 i 2 return...

為什麼c語言中 10》2 3的值為

1 做這個題,首先要知道,整數在計算機中是用補碼來存放的。以一個位元組整數為例 10 的原碼為 10001010 第一位是符號位 1表示負數,0表示正數 其餘位表示數值 10 的反碼為11110101 符號位不動,其餘位按位取反 10的補碼 反碼 1 1 1110101 1 11110110 2 運...

C語言的問題,C語言的問題

p a sizeof a sizeof int 1 這句把陣列a最後一個元素的地址賦給指標p 然後利用迴圈讓指標p不斷地前移,每前移一次把對應的陣列元素值加一 最後指標p移動到陣列a的前一個位置,所以 p 1 就是陣列的第一個元素,並且加過1的.所以 p 1 就是 11 1 12.以上是程式的總體思...