不知道哪里出bug了,这个10的排序不对,可以帮我看一下吗?
图可能有点糊
看你用的选择排序,参考如下改下:
#include<stdio.h>
void sort(int a[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(a[j]<a[k])
k=j;
if(k!=i)
{
t=a[k];
a[k]=a[i];
a[i]=t;
}
}
}
int main()
{
int n;
printf("Input n:");
scanf("%d", &n);
printf("Input %d numbers:", n);
int a[n];
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
sort(a, n);
printf("Sorting results:");
for (int i = 0; i < n; i++) {
printf("%4d", a[i]);
}
return 0;
}
如有帮助,欢迎采纳哈!
满足if条件需要执行的部分,用大括号括起来,12-13-14-15行那里
for(j=i+1;i<n;j++)
另外13,14,15行放到for循环结束后