您的位置:首页 > 编程语言 > C语言/C++

bnu1331 赈灾捐款 C语言版

2008-12-30 12:12 459 查看
北京师范大学珠海分校
Judge Online of ACM ICPC
1331 赈灾捐款
C语言版
#include <stdio.h>
#include <string.h>

int n=0;

struct man{
    char name[51];
    __int64 money;
}a[101];

int find(char x[]){
    int i;
    for (i=1;i<=n;i++)
        if (strcmp(x,a[i].name)==0) return i;
    return ++n;
}

void swap(int x,int y){
    struct man tmp;
    tmp=a[x];
    a[x]=a[y];
    a[y]=tmp;
}

int main(){
    int i,j;
    char tname[51],tmp;
    __int64 tmoney,total=0;
    while(1){
        scanf("%s",&tname);
        if (strcmp(tname,"END")==0) break;
        scanf("%I64d",&tmoney);
        total+=tmoney;
        tmp=find(tname);
        strcpy(a[tmp].name,tname);
        a[tmp].money+=tmoney;
    }
    for(i=1;i<=n;i++)
        for(j=1;j<=n-i;j++)
            if(strcmp(a[j].name,a[j+1].name)>0) swap(j,j+1);
            
    for(i=1;i<=n;i++)
        printf("%s %I64d/n",a[i].name,a[i].money);
    printf("Total %I64d/n",total);
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  语言 c