[問題] 請問一個氣泡排序的小問題

看板C_and_CPP (C/C++)作者 (原來承諾可以是這麼脆弱)時間16年前 (2010/05/07 18:57), 編輯推噓1(104)
留言5則, 4人參與, 最新討論串1/1
int count; int i; int j; int exchange; int x[100]; printf("\n"); printf("請輸入欲比較數字資料的個數: "); scanf("%d",&count); printf("\n"); printf("**請輸入任意整數**\n"); printf("\n"); for(i=0;i<=(count-1);i++) { printf("請輸入第%d個資料: ",i+1); scanf("%d",&x[i]); printf("\n"); } for(i=(count-1);i>=0;i--) { for(j=0;j<=i-1;j++) { if (x[j]>=x[j+1]) { exchange=x[j+1]; x[j+1]=x[j]; x[j]=exchange; } } printf("%4d",x[i]); } printf("\n"); printf("\n"); system("PAUSE"); return 0; 中間有著色的排序這一部分 我是想讓它從小排到大 可是不知道為什麼跑出來的結果就一直都是大排到小 白色這一行,如果改成<=,應該就變成由大排到小了 可是這樣跑出來的結果反而又變成由小排到大了 被搞得好亂呀..不知道是否有人能幫忙為我解答一下Orz -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.167.46.105 ※ 編輯: lrfnc 來自: 118.167.46.105 (05/07 19:01)

05/07 19:29, , 1F
你寫的程式是對的啊 印的方向反了
05/07 19:29, 1F

05/07 20:10, , 2F
因為你最外面那個迴圈是從最後一個印回來...
05/07 20:10, 2F

05/07 20:43, , 3F
Orz..原來是這樣..謝謝你們..那有什麼方法只改回去嗎
05/07 20:43, 3F

05/07 20:54, , 4F
排序歸排序, 列印歸列印, 分到不同的迴圈裡去試試@_@"
05/07 20:54, 4F

05/07 21:00, , 5F
喔喔..了解..一句話點醒我夢中人..謝謝大大
05/07 21:00, 5F
文章代碼(AID): #1Bu_8ccA (C_and_CPP)
文章代碼(AID): #1Bu_8ccA (C_and_CPP)