#include<stdio.h>
int main ()
{
int i,j;
int a[10];
int iTemp;
int iPos;
printf("为数组元素赋值:\n");
//通过键盘为数组赋值
for(i=0;i<10;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
//从小到大开始排序 核心程序
for(i=0;i<9;i++)//0 1 2 3 4 5 6 7 8 9次循环外循环
{
iTemp=a[i];
iPos=i;
for(j=i+1;j<10;j++)// j = 1 2 3 4 5 6 7 8 9 9次内循环
{
if(a[j]<iTemp)
{
iTemp=a[j];
iPos=j;
}
}
}
//交换两个元素的值
a[iPos]=a[i];
a[i]=iTemp;
//输出数组
for(i=0;i<10;i++)
{
printf("%d\t",a[i]);
if(i==4)
printf("\n");
}
return 0 ;
}
运算结果 这种排序方法遇到大的数字就有了问题 不过我也没看懂这种排序算法...
root@dire:~/cprogram# ./x选择法排序.out
为数组元素赋值:
a[0]=1123
a[1]=123
a[2]=123
a[3]=13
a[4]=12
a[5]=31
a[6]=23
a[7]=21
a[8]=3213
a[9]=12
1123 123 123 13 12
31 23 21 3213 12 root@dire:~/cprogram# ./x选择法排序.out
为数组元素赋值:
a[0]=1
a[1]=2
a[2]=3
a[3]=4
a[4]=5
a[5]=6
a[6]=7
a[7]=8
a[8]=9
a[9]=0
1 2 3 4 5
6 7 8 9 0 root@dire:~/cprogram#