求大佬看看这个C语言冒泡排序代码哪里错了?

#include<stdio.h>
int main()
{
int n,i;
int a[10];
for(n=0;n<10;n++)
{
printf("a[%d]=",n);
scanf("%d",&a[n]);
}
for(n=0;n<9;n++)
for(i=0;i<9-n;i++)
if(a[i]<a[i-1])
{
int temp=a[i-1];
a[i-1]=a[i];
a[i]=temp;
}
for(n=1;n<10;n++)
printf("%5d",a[n]);
printf("\n");
}

1.
if部分改成:
if(a[i+1]<a[i])
{
int temp=a[i+1];
a[i+1]=a[i];
a[i]=temp;
}
2.
最后一个for改成从n=0开始循环
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-14
a[i+1],不是a[i-1]。本回答被网友采纳
相似回答