各位高手来帮我看看为什么用打擂台法无法交换数组的职,求指导!
#include<stdio.h>main()
{
void sort(int array[],int n);
int array[10],i;
printf("Enter 10 integer:");
for(i=0;i<10;i++)
{
scanf("%d",&array[i]);
}
sort(array,10);
for(i=0;i<10;i++)
{
printf("array[%d]=%d\n",i,array[i]);
}
}
void sort(int change[],int n)
{
int i,k,l,c,m;
for(i=0;i<n;i++)
{
m=change[i];//m的值为change[i]的当前值
for(k=i;k<n;k++)
{
if(m>change[k])//m也就是change[i]与后面各个值比大小
{
m=change[k];
l=k;
}
}
c=change[i];
change[i]=change[l];
change[l]=c;
}
}
输入职为:Enter 10 integer:45 2 9 0 -3 54 12 5 66 33
运行结果为:array[0]=-3 array[1]=0 array[2]=2 array[3]=5 array[4]=9 array[5]=12 array[
6]=33 array[7]=54 array[8]=45 array[9]=66
array[7]与array[8],结果错误。