HDU 2142 - disney

来源:互联网 发布:步兵樱井知香影音先锋 编辑:程序博客网 时间:2024/06/15 07:27

知识点:结构体二级排序

#include <cstdio>#include <cstdlib>#include <cstring>struct Player{    char name[10];    int score;}player[100];inline int cmp(const void *a,const void *b){    Player *c=(Player *)a;    Player *d=(Player *)b;    if(c->score!=d->score) return d->score-c->score;    else return strcmp(c->name,d->name);}int main(){    char fun[10];    char n[10];    int s,sum=0,i=0,j;    while(scanf("%s",fun)!=EOF)    {        switch(fun[0])        {            case 'N':            {                scanf("%s%d",n,&s);                for(j=0;j<i&&strcmp(player[j].name,n);j++);                if(j==i)                {                    strcpy(player[i].name,n);                    player[i].score=s;                    sum+=s;                    i++;                    puts("A new record");                }                else                {                    sum=sum-player[j].score+s;                    player[j].score=s;                    puts("update succeed");                }            }break;            case 'A':printf("%.2lf\n",i ? 1.0*sum/i : 0.00);break;            case 'M':            {                if(i)                {                    qsort(player,i,sizeof(Player),cmp);                    int cnt=1;                    for(j=1;j<i;j++)                    if(player[j].score==player[0].score) cnt++;                    printf("%d %d\n",player[0].score,cnt);                    for(j=0;j<cnt;j++)                    puts(player[j].name);                }                else puts("0 0");            }break;            case 'D':            {                scanf("%s",n);                for(j=0;j<i&&strcmp(player[j].name,n);j++);                if(j==i) puts("no such record");                else                {                    strcpy(player[j].name,player[i-1].name);                    sum-=player[j].score;                    player[j].score=player[i-1].score;                    puts("delete succeed");                    i--;                }break;            }            case 'Q':return 0;        }    }    return 0;}


原创粉丝点击