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

来源:互联网 发布:网络协议分析课后答案 编辑:程序博客网 时间:2024/05/22 15:47
题目描述:
Problem Description
给你n个整数,请按从大到小的顺序输出其中前m大的数。
 

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

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

Sample Input
5 33 -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;}
0 0
原创粉丝点击