题解 | #合并表记录#
合并表记录
https://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201
#include <stdio.h> #include <string.h> int main() { int n=0; scanf("%d",&n); int num[n][2]; //输入 for(int i=0;i<n;i++) scanf("%d %d",&num[i][0],&num[i][1]); //冒泡排序 for(int i=0;i<n;i++) for(int j=i+1;j<n;j++) { int temp[1][2]; if(num[i][0]>num[j][0]) { temp[0][0]=num[i][0]; temp[0][1]=num[i][1]; num[i][0]=num[j][0]; num[i][1]=num[j][1]; num[j][0]=temp[0][0]; num[j][1]=temp[0][1]; } } //开始合并 int out_num[n][2]; int x=0; out_num[0][1]=num[0][1]; out_num[0][0]=num[0][0]; for(int i=0;i<n;i++) { if(num[i][0]==num[i+1][0]) { out_num[x][0]=num[i][0]; out_num[x][1]+=num[i+1][1]; } else { x++; out_num[x][0]=num[i+1][0]; out_num[x][1]=num[i+1][1]; } } //输出 for(int i=0;i<x;i++) printf("%d %d\n",out_num[i][0],out_num[i][1]); return 0; }