排序练习——找出前m大的数字

来源:互联网 发布:淘宝搜索排名查询 编辑:程序博客网 时间:2024/05/17 03:05

排序练习——找出前m大的数字

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

给定n个数字,找出前m大的数字。
 

输入

 多组输入,每组输入格式如下。
第一行包含两个整数n m。(n<=100000, m>0)
第二行包含n个正整数。

输出

 输出前m大的数字,若m>n输出ERROR。每组输出占一行。

示例输入

2 14 34 21 2 898989 23

示例输出

4898989 23

提示

 

来源

 赵利强

示例程序

 
#include<stdio.h>    int a[100001];    #include<stdlib.h>    int cmp(const void *a,const void *b)    {        return *(int *)b-*(int *)a;    }    int main()    {        int i,j,n,m,k,t;        while(scanf("%d %d",&n,&m)!=EOF)        {                        for(i=0;i<n;i++)            scanf("%d",&a[i]);                        qsort(a,n,sizeof(a[0]),cmp);            if(m>n)            {                printf("ERROR\n");                continue;            }            for(i=0;i<m;i++)            {                 if(i==0)                    printf("%d",a[i]);                else    printf(" %d",a[i]);            }            printf("\n");        }    }

0 0