您的位置:首页 > 其它

HDOJ--1425 SORT (刚开始学ACM,用的是最简单的方法)

2015-07-22 21:46 309 查看
题目描述:

Problem Description
给你n个整数,请按从大到小的顺序输出其中前m大的数。



Input
每组测试数据有两行,第一行有两个数n,m(0<n,m<1000000),第二行包含n个各不相同,且都处于区间[-500000,500000]的整数。



Output
对每组测试数据按从大到小的顺序输出前m大的数。



Sample Input
5 3
3 -35 92 213 -644




Sample Output
213 92 3

感想:这道题挺烦人的。很多细节要注意。(1) 数组应定义在主函数之前,因为数组要开的很大,放在主函数里会出现错误。			     (2) 只能适用QSORT函数或者SORT函数去做,用冒泡排序法会超时的。			     (3) 然后注意下输出的格式问题就好咯。我的代码:	#include<stdio.h>
#include<stdlib.h>
int a[1000005];
int cmp(const void*a,const void*b)
{ return*(int *)b-*(int *)a;
}
int main()
{    int n,m,i,j,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);
        printf("%d",a[0]);
  for(i=1;i<m;i++)
        printf(" %d",a[i]);
        printf("\n");
    }
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: