[问题] 泡泡排序法

楼主: 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