看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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
CCWck: 每次交換都印出來結果看看 05/10 23:09
CCWck: 至少三個地方有問題,p[j+1]可能存取到p[5] 05/10 23:11
gogoabc: 懂了 謝謝!!!! 05/10 23:25
timmy999: 我用while做的 05/10 23:27
RishYang: 13誡之2 05/11 03:28
DLHZ: 建議用codepad之類的 別直接貼上來 05/11 04:02
starjack2001: 奇怪 你只是在裡面做,但V完全沒有變不是嗎? 06/14 15:12
starjack2001: 也就是說 你換P換得很開心,但是V完全沒動到 06/14 15:13
starjack2001: 再來是 當j=4的時候 你p[4]跟p[5]會交換,可是p[5] 06/14 15:15
starjack2001: 根本就不是你要的東西 06/14 15:15
starjack2001: 應該說是根本就不是你有的東西 06/14 15:24