题解 | #合并表记录#
合并表记录
https://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201
#include <stdio.h> typedef struct{ int index; int value; }LList; //void swap(LList a,LList b) //{ // LList p=a; // a=b; // b=p; //} int main() { int n; scanf("%d",&n); LList L[n],ll; int i,j,k; for(i=0;i<n;i++) { scanf("%d%d",&L[i].index,&L[i].value); } for(i=0;i<n-1;i++) { for(j=i+1;j<n;j++)//相同index合并 { if(L[j].index==L[i].index) { L[i].value+=L[j].value; for(k=j;k<n-1;k++)//删除已被合并的 { L[k]=L[k+1]; } n--;//总数目减一 j--;//重新比较 } } } for(i=0;i<n-1;i++)//index排序 { for(j=i+1;j<n;j++) { if(L[j].index<L[i].index) { ll=L[i]; L[i]=L[j]; L[j]=ll; } } } for(i=0;i<n;i++) { printf("%d %d\n",L[i].index,L[i].value); } return 0; }