1028. List Sorting_结构体排序

来源:互联网 发布:弱视训练软件 编辑:程序博客网 时间:2024/06/06 18:31

http://pat.zju.edu.cn/contests/pat-a-practise/1028

简单的结构体排序

#include<stdio.h>#include<algorithm>#include<string.h>using namespace std;struct E{char num[10];char name[10];int score;        }buf[100010];bool cmp1(E a,E b){return strcmp(a.num,b.num) < 0;            }bool cmp2(E a,E b){int temp=strcmp(a.name,b.name);            if(temp!=0)return temp<0;else                                       return strcmp(a.num,b.num) < 0;  }bool cmp3(E a,E b){                if(a.score!=b.score)                      return a.score < b.score;elsereturn strcmp(a.num,b.num) < 0;           }int main(){ freopen("D:\\test.txt","r",stdin);int n,c,i;while(scanf("%d%d",&n,&c)!=EOF && (n!=0)){for(i=0;i<n;i++){scanf("%s%s%d",buf[i].num,buf[i].name,&buf[i].score);}if(c==1){sort(buf,buf+n,cmp1);}else if(c==2){sort(buf,buf+n,cmp2);}else if(c==3){sort(buf,buf+n,cmp3);}for (i=0;i<n;i++){printf("%s %s %d\n",buf[i].num,buf[i].name,buf[i].score);}}return 0;}


原创粉丝点击