浙大PAT 1062题 1062. Talent and Virtue

来源:互联网 发布:tf卡数据修复软件 编辑:程序博客网 时间:2024/06/08 00:33
#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct Person{    char id[10];    int virtue;    int talent;}person;//数组较大,开在main函数里面会出错; person ps[100005];person p1[100005];person p2[100005];person p3[100005];person p4[100005];int cmp(const void *atmp,const void *btmp){    person *a=(person *)atmp;      person *b=(person *)btmp;      if(a->virtue+a->talent!=b->virtue+b->talent){          return  a->virtue+a->talent<b->virtue+b->talent;    }      else if(a->virtue!=b->virtue){          return a->virtue<b->virtue;      }      else{          return strcmp(a->id,b->id);     }      return 0;  }  int main(){    int i,j;    int n,l,h;    int cnt1,cnt2,cnt3,cnt4;    scanf("%d %d %d",&n,&l,&h);    cnt1=cnt2=cnt3=cnt4=0;    for(i=0;i<n;i++){        scanf("%s %d %d",&ps[i].id,&ps[i].virtue,&ps[i].talent);        if(ps[i].virtue<l||ps[i].talent<l){            continue;                                      }        else if(ps[i].virtue>=h&&ps[i].talent>=h){            p1[cnt1]=ps[i];            cnt1++;                                   }        else if(ps[i].virtue>=h&&ps[i].talent<h){            p2[cnt2]=ps[i];            cnt2++;                                   }        else if(ps[i].virtue<h&&ps[i].talent<h&&ps[i].virtue>=ps[i].talent){            p3[cnt3]=ps[i];            cnt3++;                                   }        else {            p4[cnt4]=ps[i];            cnt4++;                                   }    }    qsort(p1,cnt1,sizeof(person),cmp);    qsort(p2,cnt2,sizeof(person),cmp);    qsort(p3,cnt3,sizeof(person),cmp);    qsort(p4,cnt4,sizeof(person),cmp);    printf("%d\n",cnt1+cnt2+cnt3+cnt4);    for(i=0;i<cnt1;i++){        printf("%s %d %d\n",p1[i].id,p1[i].virtue,p1[i].talent);      }    for(i=0;i<cnt2;i++){        printf("%s %d %d\n",p2[i].id,p2[i].virtue,p2[i].talent);      }    for(i=0;i<cnt3;i++){        printf("%s %d %d\n",p3[i].id,p3[i].virtue,p3[i].talent);      }    for(i=0;i<cnt4;i++){        printf("%s %d %d\n",p4[i].id,p4[i].virtue,p4[i].talent);      }    system("pause");    return 0;}

0 0
原创粉丝点击