#include<stdio.h>
//选择排序
void initArray(int array[],int len)
{
for(int i=0;i<len;i++)//初始数组的值
{
printf("请输入数组第%d位的值:\n",i+1);
scanf("%d",&array[i]);
}
puts("----初始化输入完成----");
}
void PrintArray(int array[],int len)//输出初始化后的值
{
puts("初始化数组的值为:");
for(int i=0;i<len;i++)
{
printf("%d ",array[i]);
}
}
void getSelectToSort(int array[],int len)//选择排序
{
int tmp;//数组值的交换媒介
int max;//数组下标的变量
for(int i=0;i<len-1;i++)
{
max=i;
for(int j=i+1;j<len;j++)
{
if(array[max]<array[j])//比较一轮,数组的第一个和后面的大小,如果后面的值大于第一个
{
max=j;//把下标赋值给max
}
}
tmp=array[max];
array[max]=array[i];//交换最大值,把最大值赋值给array[i]
array[i]=tmp;
}
}
void getPrintSelectToSort(int array[],int len)//输出数组
{
puts("\n选择排序后:");
for(int i=0;i<len;i++)
{
printf("%d ",array[i]);
}
puts("");
}
int main()
{
int array[10];
int len =sizeof(array)/sizeof(array[0]);
initArray(array,len);
PrintArray(array,len);
getSelectToSort(array,len);
getPrintSelectToSort(array,len);
return 0;
}
1.初始数组的值
void initArray(int array[],int len)
{
for(int i=0;i<len;i++)//初始数组的值
{
printf("请输入数组第%d位的值:\n",i+1);
scanf("%d",&array[i]);
}
puts("----初始化输入完成----");
}
2.输出初始化后的值
void PrintArray(int array[],int len)//输出初始化后的值
{
puts("初始化数组的值为:");
for(int i=0;i<len;i++)
{
printf("%d ",array[i]);
}
}
3.选择排序
void getSelectToSort(int array[],int len)//选择排序
{
int tmp;//数组值的交换媒介
int max;//数组下标的变量
for(int i=0;i<len-1;i++)
{
max=i;
for(int j=i+1;j<len;j++)
{
if(array[max]<array[j])//比较一轮,数组的第一个和后面的大小,如果后面的值大于第一个
{
max=j;//把下标赋值给max
}
}
tmp=array[max];
array[max]=array[i];//交换最大值,把最大值赋值给array[i]
array[i]=tmp;
}
}
4.输出排序后的数组
void getPrintSelectToSort(int array[],int len)//输出数组
{
puts("\n选择排序后:");
for(int i=0;i<len;i++)
{
printf("%d ",array[i]);
}
puts("");
}
5.入口
int main()
{
int array[10];
int len =sizeof(array)/sizeof(array[0]);
initArray(array,len);
PrintArray(array,len);
getSelectToSort(array,len);
getPrintSelectToSort(array,len);
return 0;
}
结果输出: