您的位置:首页 > 编程语言 > C语言/C++

c语言之选择法排序

2014-05-09 16:48 633 查看
#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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: