JAVA題目3寫出該程式的輸出結果。為什麼結果為5671112我懂的地方寫了註釋

時間 2021-06-25 14:52:05

1樓:匿名使用者

看來你是對這個for(t = b[i], j = i-1; j >= 0 && t < b[j]; j--)不太明白吧。

這個t是b[j+l]和b[j]進行交換的中間量,就是先將b[j]賦值給t,然後將b[j+1]賦值給b[j],在將t賦值給b[j+1]就ok了。

並且這個t = b[i]可以放到迴圈裡面來看的就清楚多了。

&& t < b[j] 也可以放到迴圈裡面寫的,加一個if 就行了,這個**寫的可讀性真的很差的,不建議這麼寫,不要裝什麼大師,將**寫的這麼緊湊,實際上不好,等你回頭來找bug的時候一頭霧水的。

改版如下:

for(i = 1;i< k; i++) }}

給你弄了一個排序的:

public static void main(string args) throws exception ;

int af = sort_array(a);

for (int i = 0; i < af.length; i++)

}public static int sort_array(int a)}}

return a;}

2樓:

這是對陣列的前k項排序 、

是冒泡嗎?(沒啥印象了)

3樓:匿名使用者

5671112 不就是對6, 12, 7, 11, 5的排序嗎

這行:有問題,

所以,是這個程式有問題,本來應該是冒泡的排序法的

下面程式的輸出結果是int x 2 int y 3 x xx 4x printfd ,y

刀秀慧 y應該是9,括號裡是三個表示式,用逗號運算子連線,所以順序從左到右,第一個表示式結束後x的值為5,即x x 由於是後置 所以先算x x x,x 4,再算x x 5,第二個表示式幾乎沒用,所以直接算第三個,由於是前置 所以x的值變為6,最後在加上前邊的3就是9了。 樂酷科技 x x x 4,x...

C語言程式為什麼最後的輸出結果是這個

getchar接收的是 字元 putchar輸出的也是字元 它們不會接收和輸出整數!第一次c 2 執行case 0 後面的語句直到遇到break 所以輸出是 6 6 顯示就是66。第二次c 4 執行case 2 後面的語句直到遇到break 所以輸出是 8 顯示就是668。第三次c 7 執行defa...

c 輸出結果為什麼都是A的函式

這主要是因為引數傳遞的問題。在你呼叫print函式的時候,這時候會拷貝建構函式重新建立一個物件,這個物件是a。所以你呼叫的結果就都是使用了a的printme了。一般來說,使用虛擬函式的時候,傳遞的應該是指標。當然引用也是可以的。這是c 的基礎知識。看來你的基本功還不過關!因為你void print ...