题解 | #合并表记录#

合并表记录

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

#include<stdio.h>

typedef struct{ int key; int val; }KeyVal;

int main(){

int n;
scanf("%d",&n);
KeyVal keyVal[n];
for(int i=0;i<n;i++){
    scanf("%d %d",&keyVal[i].key,&keyVal[i].val);
}

for(int i=0;i+1<n;i++){
    for(int j=i+1;j<n;j++){
        if(keyVal[i].key==keyVal[j].key){
        keyVal[i].val = keyVal[i].val+keyVal[j].val;
        }
    }
    
}


for(int i=0;i<n-1;i++){
    for(int j=0;j<n-i-1;j++){
        if(keyVal[j].key>keyVal[j+1].key){
            KeyVal temp = keyVal[j];
            keyVal[j] = keyVal[j+1];
            keyVal[j+1] = temp;
        }
    }
}

for(int i=0;i<n;i++){
    printf("%d %d\n",keyVal[i].key,keyVal[i].val);
    for(int j=i+1;j<n;j++){
        if(keyVal[i].key==keyVal[j].key){
            i++;
        }
    }
    
}


return 0;

}

全部评论

相关推荐

点赞 1 评论
分享
牛客网
牛客企业服务