為什麼結果是3,4,,為什麼結果是3,4,5?

2022-08-02 12:55:31 字數 2144 閱讀 3629

1樓:弒緋

你要弄懂自加符號在變數前面和後面的不同。在單獨使用++號時,他的意思都一樣,均為變數自己自加1;

在變數前面的時候,++號的意思是先對變數進行自加,然後在執行之後的操作。

舉個例子:

int a = 1;

int b ;

b =++a+1;

這時候的b=3,a=2

在變數後面的時候,++號的意思是先執行之後的操作,在進行自加.

舉個例子:

int a = 1;

int b ;

b =a+++1;

這時候的b=2,a=2;

同樣的道理,我們回到題目。因為x和y都執行單獨的自加,所以在執行完++y後,x的值為2,y的值為3。

現在看z=(x++)+(y++),因為++號在變數的後面。所以是先執行自加操作之外的操作,再進行自加,也就是先執行z=x+y,也就是z=2+3=5,然後執行x和y的自加

所以最後x=3,y=4,z=5

2樓:風若遠去何人留

逗號表示式 從左到右計算

所以 先

x++ -> x=2

y++ -> y=3

然後計算 z=(x++) + (y++);

這裡 先取值 z=2+3=5

然後 x自加為3 y自加為4

於是x=3

y=4z=5

3&4 4|5表示什麼意思啊?

c語言,為什麼結果是1 3 4 5

3樓:楊兵

答案我執行過了,是 1 3 4 5,現在我來解釋一下,希望我的解釋你能夠理解:

首先int a[5]=;

(1)注意到c/c++語言規定是a[0]=1,a[1]=4,a[2]=5;

而不是a[1]=1,a[2]=4,a[3]=5;

(2)經過

while (i<=n&&k>=a[i])

i++;

由於a[i]即a[1]=4,而k=3不大於a[1],不滿足迴圈條件,不執行i++語句

故經過while之後,i 不變,仍未1;

(3)for (j=n-1;j>=i;j--)

a [j+1]=a[j];

當j =n-1即j=2時,將(a[j]即a[2])的值5賦值給(a[j+1]即a[3]),此時a[5]=;

當 j=1時,將(a[j]即a[1])的值4賦值給(a[j+1]即a[2]),此時a[5]=;

(4)a[i]=k;

即將k的值3賦值給a[i]即a[1],得a[1]=3,此時a[5]=

(5)for (i=0;i<=n;i++)

printf ("%3d",a[i]);

輸出a[5]所有的值,即1,3,4,5

4樓:劉_永友

你嘗試著一步一步的 自己試著 想象 執行過程

i n j k a[0] a[1] a[2] a[3] a[4]

1 3 null 3 1 4 5 0 0

while語句進入 由於 k>=a[1] 不成立 所以 跳出

for語句 初始化 j = 2

第一次 1 3 1 3 1 4 5 5 0

第二次 1 3 0 3 1 4 4 5 0

由於 0<1 跳出

下一語句 a[i]=k; 執行 即使 a[1] = 3;

執行 列印語句 到 a[3] 所以就是 1 3 4 5了 你要注意 格式 我估計你這個是 把迴圈的格式

弄錯了 造成了邏輯 錯誤 …… 按照題目要求 慢慢改吧 迴圈體 建議 加一個 括號……

5樓:匿名使用者

a[0]=1,a[1]=4,a[2]=5;

while (i<=n&&k>=a[i])後i 不變,仍未1;

為什麼結果是 a b

首先說明一下,這個程式巧妙的應用了賦值語句作為判斷條件,同時實現了兩個作用 1.字元陣列賦值。2.判斷串尾符跳出迴圈。下面來詳細的看 字串s為 a b 注意作為字串,s的最後還有乙個預設的串尾符 0 void fun char a,char b while a a 這個語句比較好理解,作用是判斷...

7,8,9,12讓結果是,7,8,9,12讓結果是

9 7 8 12 8 9 12 7 9 12 8 內7 8 7 9 12 9 7 12 8 9 7 容8 12 8 7 9 12 12 8 7 9 12 8 9 7 9 12 7 8 12 9 7 8 8 12 9 7 7 9 8 12 9 7 12 8 7 9 12 8 12 9 8 7 12 9...

講解22的結果是,講解22的結果是

2 專2 2 2 2 2 屬2 1 2 2 2 2 2 2 2 版 權 2 2 2 2 2 2 2 原式 2 2 4 2 2 2 2 2 2013 2 2 2013 2 2013 2 3 2 數學問題求解,要有過程 2 3 2 2 2 3 2 2 2 2014一2 2013 解du zhi 2 da...