题解 | #合并表记录#
合并表记录
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;
}

