Problem B: 寻找最大的前n个数
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
HINT
Append Code
#include <stdio.h>
int main()
{
int m, n;
int i, j, k, l, max, temp;
int a[100] = {0};
scanf("%d",&m);
scanf("%d",&n);
for(i = 0; i < m; i++)
{
scanf("%d",&a[i]);
}
for(k = 1; k < m; k++)
{
for(j = 0; j < m - k; j++)
{
if(a[j] > a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
if(m <= n)
{
for(l = m - 1; l > 0; l--)
printf("%d ",a[l]);
printf("%d",a[0]);
}
else
{
for(l = m - 1;l > m - n ; l--)
printf("%d ",a[l]);
printf("%d",a[m - n ]);
}
}
基本思路:先进行一个冒泡排序,再按要求输出