题解 | #合并表记录#
合并表记录
https://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201
#include <stdio.h> typedef struct pairs{ int index[500]; int value[500]; }pairs_t; int main() { pairs_t p; int N=0; scanf("%d",&N); for(int i=0;i<N;i++){ scanf("%d %d",&p.index[i],&p.value[i]); } /*合并*/ for(int i=0;i<N;i++){ for(int j=i+1;j<N;j++){ if(p.index[i]==p.index[j]){ p.value[i]+=p.value[j]; for (int k = j; k < N - 1; k++) { p.value[k] = p.value[k + 1]; p.index[k] = p.index[k + 1]; } N--; // 更新数组长度 j--; } } } //排序 for(int i=0;i<N-1;i++){ for(int j=0;j<N-i-1;j++){ if(p.index[j]>p.index[j+1]){ int temp=p.index[j]; p.index[j]=p.index[j+1]; p.index[j+1]=temp; int temp2=p.value[j]; p.value[j]=p.value[j+1]; p.value[j+1]=temp2; } } } for(int i=0;i<N;i++){ printf("%d %d\n",p.index[i],p.value[i]); } return 0; }