C语言中利用数组和循环实现选择排序
数组,循环学习的一道题
一个简单的程序实现排序:
代码如下
//选择排序(利用数组循环)
#include <stdio.h>
int main(){
int a[5];
int i,j,k;
int imin;
int temp;
printf("请输入你要排序的数组(5个)\n");
//输入数组
for(i = 0; i<5;i++){
scanf("%d",&a[i]);
}
//输出数组的起始状态
for (i = 0; i <5 ; i++)
{
printf("%d ",a[i]);
}
//进行排序程序
for(i =0;i<5;i++){
imin = i;
//假设此时的a[i]为最小值,进行下列判断
for ( j = i+1; j < 5; j++)
{
//进行选择
if (a[j]<a[imin])
{
imin = j;
}
}
//换位操作
temp = a[i];
a[i] = a[imin];
a[imin] = temp;
}
printf("\n你的排序结果为\n");
for ( k = 0; k < 5; k++)
{
printf("%d ",a[k]);
}
return 0;
}
运行结果:
(以9,6,7,3,1为例)
9
6
7
3
1
9 6 7 3 1
你的排序结果为
1 3 6 7 9