题解 | #合并表记录#

合并表记录

http://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201

#include <stdio.h>
#include <string.h>
int main()
{
    struct Dict
    {
        long index;
        long value;
    };
    int n, i, j, k;
    int p, r;
    char q;
    struct Dict kvalue[500];
    struct Dict fuzhu;
    memset(kvalue, -1, sizeof(kvalue));
    fuzhu.index = 0;
    fuzhu.value = 0;
    scanf("%d", &n);
    
    for (i = 0; i < n; i++)
    {
        scanf("%d", &p);
        scanf("%c", &q);
        scanf("%d", &r);
        j = 0;
        while (kvalue[j].index != -1)
        {
            if (kvalue[j].index == p)
            {
                kvalue[j].value += r;
                break;
            }
            else
                j++;
        }
        if (kvalue[j].index == -1)
        {
            kvalue[j].index = p;
            kvalue[j].value = r;
        }
    }
    // sort
    for (i = 0; i < n - 1; i++)
    {
        k = i;
        for (j = i + 1; j < n; j++)
            if ((kvalue[j].index != -1) && (kvalue[k].index > kvalue[j].index))
                k = j;
        fuzhu = kvalue[k]; kvalue[k] = kvalue[i]; kvalue[i] = fuzhu;
    }
    
    for (j = 0; (j < n) && (kvalue[j].index != -1); j++)
    {
        printf("%d %d\n", kvalue[j].index, kvalue[j].value);
    }
    return 0;
}

全部评论

相关推荐

10-22 19:44
门头沟学院 Java
KKorz:我以为又疯一个呢,你来真的啊?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务