结构体排序一直不是很熟练,错了好几次,哇咔咔。。。
结构体也不是很熟悉。。。。。
#include<stdio.h>
#include<stdlib.h>
struct person
{
double value;
int size;
}per[1001];
int cmp1(const void *a,const void *b)
{
struct person *aa= (struct person *)a;
struct person *bb=(struct person *)b;
if(bb->value==aa->value)
return aa->size-bb->size;
else
return bb->value-aa->value;
}
int cmp2(const void *a,const void *b)
{
struct person *aa= (struct person *)a;
struct person *bb=(struct person *)b;
return bb->size-aa->size;
}
int main()
{
int n,m,k,i,j;
double s;
while(~scanf("%d%d%d",&n,&m,&k))
{
for(i=0;i<1001;i++)
{
per[i].value=0;
per[i].size=i+1;
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
scanf("%lf",&s);
per[j].value+=s;
}
}
qsort(per,m,sizeof(per[0]),cmp1);
qsort(per,k,sizeof(per[0]),cmp2);
for(i=0;i<k-1;i++)
printf("%d ",per[i].size);
printf("%d\n",per[i].size);
}
return 0;
}