题解 | #合并表记录#
合并表记录
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;
}
查看5道真题和解析