我在看C语言程序设计是遇到一个问题,用选择法对数组中的5个整数按由小到大排序
#include
int main()
{
void sort(int array[],int n);
int a[5],i;
printf("Please input 5 numbers:\n");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
sort(a,5);
printf("the sort array:\n");
for(i=0;i<5;i++)
printf("%d\t",a[i]);
printf("\n");
return 0;
}
这段代码没什么问题,主要是里面这个sort函数
这是书中给定的
void sort(int array[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(array[j]<array[k])
k=j;
t=array[k];array[k]=array[i];array[i]=t;
}
}
而我自己写的少了一个变量k,就不能实现这个功能了,不知道为什么
void sort(int array[],int n)
{
int i,j,t;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
if(array[j]<array[i])
t=array[j];
array[j]=array[i];
array[i]=t;
}
}