标签:++ ring 间接 stdio.h for 输出 代码 == 排列
给你n个整数,请按从大到小的顺序输出其中前m大的数。
先看代码:
#include<stdio.h>
#include<string.h>
#define MAX 1100000
int a[MAX];
int main()
{
int n,m,i,t,k;
while(scanf("%d%d",&n,&m)!=EOF)
{
while(n--)
{
scanf("%d",&t);
a[t+500000]=1; /*这个处理是边输边排,输入一个较小的数a,a便被分到了数组的较前方;输入一个较大的数b,b便被分到了数组的较后方。这样就间接实现了对输入的数据从大到小的排列,然后再按照要求输出。很6*/
}
t=MAX;
for(i=0;i<m;i++)
{
while(1)
{
if(a[t]==1)
{
k=t-500000;
a[t]=0;
break;
}
else
t--;
}
if(i==0)
printf("%d",k);
else
printf(" %d",k);
}
printf("\n");
}
return 0;
}
标签:++ ring 间接 stdio.h for 输出 代码 == 排列
原文地址:http://www.cnblogs.com/clljs/p/7447531.html