称不上算法的算法-2.简单的排序

一、sort()

HDU1031

#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<cstring>
struct node{
    int pos;
    double val;
}t[2000];
bool cmp1(node a,node b){//************************
    return a.val>b.val;//      sort()中比较函数的写法
}                       //***************************
bool cmp2(node a,node b){
    return a.pos>b.pos;
}
using namespace std;
int main(void){
    int n,m,k;
    while(scanf("%d%d%d",&n,&m,&k) == 3){
        memset(t,0,sizeof(t));
        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                t[j].pos=j+1;
                double tmp;
                scanf("%lf",&tmp);
                t[j].val+=tmp;
            }
        }
        sort(t,t+m,cmp1);//sort()的用法
        sort(t,t+k,cmp2);
        for(int f=0;f<k;f++)
            printf("%d%c",t[f].pos,f==k-1? '\n':' ');//空格间隔换行结尾的一种写法
    }
    return 0;
}

 

posted @ 2018-04-14 10:17  超级猿  阅读(104)  评论(0编辑  收藏  举报