还是结构体输入,排序,后输出,不过是使用了两次sort,因为要求倒序输出所得的答案
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
using namespace std;
struct q
{
int num;
double piao;
}p[1005];
int cmp(q a,q b)
{
if(a.piao==b.piao)return a.num<b.num;
else return a.piao>b.piao;
}
int cmp1(q a,q b)
{
return a.num>b.num;
}
int main()
{
int N,M,K;
while(cin>>N>>M>>K)
{
memset(p,0,sizeof(p));
double a;
for(int i=1;i<=M;i++)p[i].num=i;
for(int i=1;i<=N;i++){
for(int j=1;j<=M;j++){
scanf("%lf",&a);
p[j].piao+=a;
}
}
sort(p+1,p+1+M,cmp);
sort(p+1,p+1+K,cmp1);
for(int i=1;i<=K;i++){
if(i==K)printf("%d",p[i].num);
else printf("%d ",p[i].num);
}
printf("\n");
}
return 0;
}