Problem J: 寻找最大的前n个数
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 2494 Solved: 1112
[Submit][Status]
Description
输入m(0<m<100)个整数,从大到小输出其中最大的前n个,若m<=n,则从大到小输出全部的数.
Input
输入为一行,分别是m、n和m个整数.输入格式见sample input.
Output
从大到小输出其中最大的前n个,若m<=n,则从大到小输出全部的数.输出格式见sample output.
Sample Input
10 3 1 2 3 4 5 6 7 8 9 10
Sample Output
10 9 8
#include<stdio.h>
int main()
{
int m,n,i,j;
int a[100];
scanf("%d%d",&m,&n);
for(i=0;i<m;i++)
scanf("%d",&a[i]);
//排个序先
for(i=1;i<=m;i++)
for(j=0;j<m-i;j++)
if(a[j]<a[j+1])
{
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
int t=m<n?m:n;//找出m,n中较小的那一个
for(i=0;i<t;i++)
{
if(i==0)
printf("%d",a[i]);
else
printf(" %d",a[i]);
}
}