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 ...