作者gogoabc (神阿 請給我一點體重)
看板C_and_CPP
標題[問題] 泡泡排序法
時間Fri May 10 22:57:05 2019
開發平台(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