今日份AC(每次做这种把题目特意包装的题就觉得出题人好可爱(*╹▽╹*))
题目描述
浙江桐乡乌镇共有n个人,请找出该镇上的前m个大富翁.
输入描述:
每个用例首先包含2个整数n(0<n<=100000)和m(0<m<=10),其中: n为镇上的人数,m为需要找出的大富翁数, 接下来一行输入镇上n个人的财富值.
输出描述:
请输出乌镇前m个大富翁的财产数,财产多的排前面,如果大富翁不足m个,则全部输出,每组输出占一行.
示例1
输入
3 1 2 5 -1 5 3 1 2 3 4 5
输出
5 5 4 3
#include<stdio.h>
void select_sort(int a[],int lenth,int m){
for(int i=0;i<m;i++){
int max=i;
for(int j=i+1;j<lenth;j++){
if(a[j]>a[max])
max=j;
}
if(max!=i){
int temp=a[i];
a[i]=a[max];
a[max]=temp;
}
}
}
int main(){
int n,m;
int a[100000];
while(scanf("%d%d",&n,&m)!=EOF){
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
if(n<m) m=n;
//选择排序
select_sort(a,n,m);
for(int i=0;i<m;i++){
printf("%d ",a[i]);
}
}
}