[問題] 泡泡排序法

作者: gogoabc (神阿 請給我一點體重)   2019-05-10 22:57:05
開發平台(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;
}
}
}
}
作者: CCWck (幹嘛要暱稱)   2019-05-10 23:09:00
每次交換都印出來結果看看至少三個地方有問題,p[j+1]可能存取到p[5]
作者: gogoabc (神阿 請給我一點體重)   2019-05-10 23:25:00
懂了 謝謝!!!!
作者: timmy999 (憤怒a阿宅)   2019-05-10 23:27:00
我用while做的
作者: RishYang (Rish)   2019-05-11 03:28:00
13誡之2
作者: DLHZ ( )   2019-05-11 04:02:00
建議用codepad之類的 別直接貼上來
作者: starjack2001 (李也鴉信)   2019-06-14 15:12:00
奇怪 你只是在裡面做,但V完全沒有變不是嗎?也就是說 你換P換得很開心,但是V完全沒動到再來是 當j=4的時候 你p[4]跟p[5]會交換,可是p[5]根本就不是你要的東西應該說是根本就不是你有的東西

Links booklink

Contact Us: admin [ a t ] ucptt.com