之前我发过一期关于数组内数字排序的,那一期所用的方法是俗称的冒泡法,这一期讲一个不同的方法:选择法
这个方法需要主程序与子程序合作完成,以下是主程序的内容
#include <stdio.h>
int main()
{
printf("请问您要输入几个数据?");
scanf("%d",&n);
n=n-1;
int s[n];
printf("请输入您的数据");
for(i=0;i<=n:i++)
{
if(i<n)
{
scanf("%d",&s[i]);
printf("请继续输入\n");
}
if(i==n)
{
scanf("%d",&s[n]);
printf("数据已输入完毕\n")break;
}
void sort(int array[],int k);//定义函数
sort(s,n);//调用函数,a为数组名,n为大小
print("数组的排序为:\n");
for(i=0;i<10;i++)
printf("%d",s[i]);
printf("\n");
return 0;
}
以下为子程序
void sort(array[],int k)
{
int i,j,n,t;
for(i=0;i<k-1;i++)
{
n=i;
for(j=i+1;j<n;j++)
if(array[j]<array[n])
k=j;
t=array[n];array[n]=array[i];array[i]=t;
}
}