[問題] 泡泡排序法

看板C_and_CPP (C/C++)作者 (神阿 請給我一點體重)時間6年前 (2019/05/10 22:57), 編輯推噓5(506)
留言11則, 6人參與, 6年前最新討論串1/1
開發平台(Platform): (Ex: Win10, Linux, ...) win10 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) Dev C++ 問題(Question): 使用者輸入五個數字後 將數字由小排到大 程式可執行 但執行出來的結果不是正確答案 不知道哪裡錯了 程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔) #include<stdio.h> void bubble(int[]); int main(){ int v[5],i; for(i=0;i<=4;i++){ printf("%d:",i+1); scanf("%d",&v[i]);//使用者輸入五個數字 } bubble(v);//呼叫泡泡排序法函式 for(i=0;i<=4;i++){ printf("%d,",v[i]); } return 0; } //以下是泡泡排序法函式 void bubble(int p[]){ int i,t,j; for(i=0;i<=4;i++){ for(j=0;j<=4;j++){ if(p[j]>p[j+1]){ t=p[j]; p[j]=p[j+1]; p[j+1]=t; } } } } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.163.179.101 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1557500228.A.B0B.html

05/10 23:09, 6年前 , 1F
每次交換都印出來結果看看
05/10 23:09, 1F

05/10 23:11, 6年前 , 2F
至少三個地方有問題,p[j+1]可能存取到p[5]
05/10 23:11, 2F

05/10 23:25, 6年前 , 3F
懂了 謝謝!!!!
05/10 23:25, 3F

05/10 23:27, 6年前 , 4F
我用while做的
05/10 23:27, 4F

05/11 03:28, 6年前 , 5F
13誡之2
05/11 03:28, 5F

05/11 04:02, 6年前 , 6F
建議用codepad之類的 別直接貼上來
05/11 04:02, 6F

06/14 15:12, 6年前 , 7F
奇怪 你只是在裡面做,但V完全沒有變不是嗎?
06/14 15:12, 7F

06/14 15:13, 6年前 , 8F
也就是說 你換P換得很開心,但是V完全沒動到
06/14 15:13, 8F

06/14 15:15, 6年前 , 9F
再來是 當j=4的時候 你p[4]跟p[5]會交換,可是p[5]
06/14 15:15, 9F

06/14 15:15, 6年前 , 10F
根本就不是你要的東西
06/14 15:15, 10F

06/14 15:24, 6年前 , 11F
應該說是根本就不是你有的東西
06/14 15:24, 11F
文章代碼(AID): #1SrP54iB (C_and_CPP)
文章代碼(AID): #1SrP54iB (C_and_CPP)