http://acm.hdu.edu.cn/showproblem.php?pid=1031
1 #include<iostream> 2 #include<stdio.h> 3 #include<math.h> 4 #include<string.h> 5 #include<stdlib.h> 6 #include<algorithm> 7 using namespace std; 8 const int N=1000; 9 struct stu{ 10 double v; 11 int k; 12 }a[N]; 13 int vcmp(const void *a,const void *b) 14 { 15 if((*(struct stu*)a).v == (*(struct stu*)b).v) 16 return (*(struct stu*)a).k > (*(struct stu*)b).k?1:-1; 17 else 18 return (*(struct stu*)a).v < (*(struct stu*)b).v?1:-1; 19 } 20 int compare(int a,int b) 21 { 22 return a>b;//降序 23 } 24 25 int main() 26 { 27 //freopen("in.txt","r",stdin); 28 int n,m,k; 29 while(cin>>n>>m>>k) 30 { 31 int b[N]; 32 double t; 33 memset(b,0,sizeof(b)); 34 memset(a,0,sizeof(a)); 35 for(int i=0;i<n;i++) 36 { 37 for(int j=0;j<m;j++) 38 { 39 scanf("%lf",&t); 40 a[j].v+=t; 41 a[j].k=j+1; 42 } 43 } 44 qsort(a,m,sizeof(struct stu),vcmp); 45 // for(int i=0;i<m;i++) 46 // { 47 // printf("%lf %d\n",a[i].v,a[i].k); 48 // } 49 for(int i=0;i<k;i++) 50 { 51 b[i]=a[i].k; 52 } 53 sort(b,b+k,compare); 54 printf("%d",b[0]); 55 for(int i=1;i<k;i++) 56 printf(" %d",b[i]); 57 cout<<endl; 58 59 } 60 return 0; 61 }
原文:http://www.cnblogs.com/xuesen1995/p/4493100.html