#include<stdio.h>
void select_score(int a[],int n)//排序函数
{
int i,j,k,temp;
for(i=0;i<n-1;++i)
{
k=i;
for(j=i+1;j<n;++j)
{
if(a[k]>a[j])
k=j;
if(k!=i)//为什么把这个if语句放在内循环里面就不对了呢?由于即使下一次比较大小的时候不需要呼唤的时候,由于k!=i了,所以仍然进行比较。
{
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
}
}
int main()
{
int a[10],i;
printf("please enter ten numbers for the array a:\n");
for(i=0;i<10;++i)//逐个为数组元素赋值
{
scanf("%d",&a[i]);
}
printf("The array before score is:\n");
for(i=0;i<10;++i)//输出还没排序的数组序列
{
printf("%d\t",a[i]);
}
printf("\n");
select_score(a,10);//排序函数,把该数组进行从小到大的排序
printf("The array after score is:\n");
for(i=0;i<10;++i)//输出排序后的数组
{
printf("%d\t",a[i]);
}
return 0;
}
void select_score(int a[],int n)//排序函数
{
int i,j,k,temp;
for(i=0;i<n-1;++i)
{
k=i;
for(j=i+1;j<n;++j)
{
if(a[k]>a[j])
k=j;
if(k!=i)//为什么把这个if语句放在内循环里面就不对了呢?由于即使下一次比较大小的时候不需要呼唤的时候,由于k!=i了,所以仍然进行比较。
{
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
}
}
int main()
{
int a[10],i;
printf("please enter ten numbers for the array a:\n");
for(i=0;i<10;++i)//逐个为数组元素赋值
{
scanf("%d",&a[i]);
}
printf("The array before score is:\n");
for(i=0;i<10;++i)//输出还没排序的数组序列
{
printf("%d\t",a[i]);
}
printf("\n");
select_score(a,10);//排序函数,把该数组进行从小到大的排序
printf("The array after score is:\n");
for(i=0;i<10;++i)//输出排序后的数组
{
printf("%d\t",a[i]);
}
return 0;
}