1樓:
不能,比如輸入2 5 3 6 8,在第二個for迴圈當中【for(j=i+1;ja[j])
】你a[i]用的i,而i=0,那麼總是a[0]=2與5 3 6 8比,
而a[0]是最小的一個,那麼怎麼也進不了if迴圈中flag就為0咯,又return,就結束咯換下for(i=1;ia[j+1]) //如果前面的數比後面的數大,進行交換
即把小數在前就放前不動,拿後面的比,而不是總拿小數去與其他的比
2樓:靈動無影
一個簡單的小函式被你寫這麼長,服氣了,氣泡排序基本上10行以內解決,理論上和選擇排序的時間雜度是一樣的。所以我建議你用選擇排序寫,簡潔易懂,你這樣把自己搞成暈菜了!
c語言問題用氣泡排序法按順序輸出字串
include include int main void for i 0 i出指標 str i return 0 用氣泡排序法對10個字串排序,並按從小到大的順序輸出.需要用c語言來程式設計的 include stdio.h include string.h int main char p 10 ...
c語言選擇法排序問題,c語言 選擇法排序
這個問題可以設想如果陣列就是從小到大的,會發生什麼情況 如果就是從小到大的陣列,if 語句沒用了,那麼直接執行a ipos a i 這就會出現問題了,如果你沒 對ipos賦值,那麼程式會報錯,如果對ipos賦值,那麼該賦什麼值?毫無疑問是i,如果和i不同,那麼意味著每次迴圈a 陣列中ipos處的值都...
用C語言,隨機輸入整數,用氣泡排序法對這些整數進行從小到大排序,輸出排序前和排序後的數的順序
c語言隨機輸入10個整數的源 如 下 include stdio.h void fun int a void main int c 10 int i printf 請輸入待排序的10個數 for i 0 i 10 i fun a printf n排序後的數列如下 n for i 0 i 10 i w...