这个简单排序程序运行时只能交换最后两个数,怎么回事?该怎么改呢?
程序代码:#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void input(double r[] ,int n)
{printf("请输入%d个数\n",n);
int i;
for(i=0;i<n;i++)
scanf(" %lf",&r[i]);
}
void output(double r[] ,int n)
{int i;
for(i=0;i<n;i++)
{printf (" %lf",r[i]);
if((i+1)%5==0)
{
printf("\n");
}
}
}
void sort3(double r[],int n)
{int i,j,k;
double l;
for(i=0;i<n-1;i++)
k=i;
for(j=i+1;j<n;j++)
{
if(r[j]<r[k])
k=j;}
if (i!=k)
{l=r[k];
r[k]=r[i];
r[i]=l;}
}
int main()
{
double a[10] ;
int d[]={5,3,1};
input(a,10) ;
sort3(a,10) ;
printf("排好的序列:\n") ;
output(a,10) ;
return 0 ;
}







