数据表记录包含表索引index和数值value(int范围的正整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照index值升序进行输出。使用C++语言
代码如下
#include
using namespace std;
int main() {
int n;
cin >>n;
int a[1111111]={0};
int b[100000]={0};
for(int i=0;i<n;i++){
cin>>a[i];
cin>>b[i];
}
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++)
if(a[i]==a[j]){
b[i]=b[i]+b[j];
b[j]=0;
}
}
for(int i=0;i<n;i++){
int index=0;
int value=0;
for(int j=i+1;j<n;j++){//将索引值从小到大排序
if(a[i]>a[j]){
index=a[i];
value=b[i];
a[i]=a[j];
b[i]=b[j];
a[j]=index;
b[j]=value;
}
}
if(b[i]!=0){
cout<<a[i]<<" "<<b[i]<<endl;
}
}
}