题解 | #合并表记录#

合并表记录

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

#include <stdio.h>
#include <stdlib.h>

void swap(int* a, int* b)
{
    int temp;
    temp = *b;
    *b = *a;
    *a = temp;
}

int main() {
    int num;
    scanf("%d",&num);
    int* keys = (int*) malloc(num*sizeof(int));
    int* values = (int*)malloc(num*sizeof(int));
    for(int i=0;i<num;i++)
    {
        int index,value;
        scanf("%d", &index);
        scanf("%d", &value);
        keys[i]=index;
        values[i]=value;
    }
    //合并
    for(int i=0;i<num;i++)
    {
        int index = keys[i];
        if(index==-1)
            continue;
        for(int j=i+1;j<num;j++)
        {
            if(keys[j]==index){
                keys[j]=-1;
                values[i]+=values[j];
                values[j] = 0;
            }
        }
    }
    //冒泡排序
    for(int i=0;i<num-1;i++)
    {
        int index = keys[i];
        for(int j=0;j<num-i-1;j++)
        {
            if(keys[j]>keys[j+1]){
                swap(keys+j,keys+j+1);
                swap(values+j,values+j+1);
            }
        }
    }


    for(int i=0;i<num;i++)
    {
        if(keys[i]<0)
            continue;
        else
            printf("%d %d\n",keys[i],values[i]);
    }

    free(keys);
    free(values);

    return 0;
}

全部评论

相关推荐

落叶随风呀:学校不好就放两栏,专业能力往前移, 政治面貌不是党员不如不写,籍贯湖南衡阳,或者湖南,浅尝辄止 基本信息排版不够美观,没有对齐 简历上花里胡哨的东西去掉 项目我不评价,因为我能力有限,且对mcu了解不足 但是这份简历掌握的水平,你可以海投试试,工作没问题但是工资应该不会高,因为搞mcu的小公司多
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务