看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: Win10, Linux, ...) Win10 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) VC++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 無法完成正確排序 餵入的資料(Input): 陣列: {87,23,21,14,17,9,86,66,99,10} 預期的正確結果(Expected Output): 9, 10, 14, 17, 21, 23 , 66 , 86, 87, 99, 錯誤結果(Wrong Output): 9, 10, 14, 17, 21, 66, 23, 86, 87, 99, 程式碼(Code):(請善用置底文網頁, 記得排版) select sort函數 我是這樣寫的.... --------------------------------------------------- void select_Sort(int data[], int n){ /*參數n為陣列長度*/ int i, j, min, tmp; for (i = 0; i < n ; i++) { min = i; for (j = i; j < n; j++) { if (data[j] < data[min]) { min = j; } tmp = data[min]; data[min] = data[i]; data[i] = tmp; } } } --------------------------------------------------- 補充說明(Supplement): 我用debuger了 前面的排序正常 但是到了後面會有一個奇怪的轉換(!?) 66跟23交換位置了 感謝各位前輩... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.195.157 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1479277988.A.58C.html ※ 編輯: wa007123456 (125.227.195.157), 11/16/2016 14:35:57
tsoahans: 你先換過去min就不是最小值了 11/16 14:59
感謝樓上 我會了...原來交換的地方寫錯了... 要在第一層迴圈 不然他會瘋狂亂換@@ 謝謝你 ※ 編輯: wa007123456 (125.227.195.157), 11/16/2016 15:09:51