题解 | 合并表记录
合并表记录
https://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201
#include<stdio.h>
struct record{
int index;
int value;
}data[500],new[500];
int main(){
int num=0,flag=0;
scanf("%d",&num);
int i=0,t=0;
for(i=0;i<num;i++){
scanf("%d %d",&data[i].index,&data[i].value);
}
new[0]=data[0];int j=0;
for(i=1;i<num;i++){
for(int temp=0;temp<j+1;temp++){
if(new[temp].index==data[i].index){
new[temp].value+=data[i].value;flag++;
}
}
if(!flag){
new[++j].index=data[i].index;
new[j].value=data[i].value;
}flag=0;
}
for(i=0;i<j;i++){
for(t=0;t<j-i;t++){
if(new[t].index>new[t+1].index){
int tem1=new[t].index;
int tem2=new[t].value;
new[t].index=new[t+1].index;
new[t].value=new[t+1].value;
new[t+1].index=tem1;
new[t+1].value=tem2;
}
}
}
for(i=0;i<j+1;i++){
printf("%d %d\n",new[i].index,new[i].value);
}
return 0;
}


查看21道真题和解析