代码如下:
//“选择排序法”,对一维数组的n个整数从小到大排序
#include<stdio.h>
int main(void)
{
int i,j,k,n,temp,a[200];
scanf("%d",&n); //从键盘输入待排序的数据个数n<200
for(k=0;k<n;k++)
scanf("%d",&a[k]); //从键盘依次输入待排序数据
for(i=0;i<=n-1;i++) //外层循环,变量i控制排序总共进行n-1轮
{
k=i;
for(j=i+1;j<n;j++) //内层循环,变量j控制每轮进行比较的次数
{ if(a[j]<a[k])
k=j; //k记录每轮比较中的最小者的下标
}
if(k!=j)
{
temp=a[i];a[i]=a[k];a[k]=temp; //将第i轮的最小者与a[i]交换
}
}
printf("排序后: \n");
for(i=0;i<n;i++) //利用for循环,依次输出排序结果
printf("%d ",a[i]);
printf("\n");
return 0;
}
键盘输入:
5 回车
23 回车
56 回车
89 回车
41 回车
63 回车
结果如下: