一、题目:
描述
数据表记录包含表索引和数值(int范围的正整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
输入描述:
先输入键值对的个数
然后输入成对的index和value值,以空格隔开
输出描述:
输出合并后的键值对(多行)
二、输入输出示例:
三、思路:
可以利用结构体数组来实现,初步定义数组大小为1000,将index和数组的下标对应,比较输入的index和数组的下标,一样则将value累加到数组中。
四、代码:
#include<iostream>
using namespace std;
#define max 1000
struct Table
{
int index;
int value;
};
int main()
{
struct Table a[max];
for (int i = 0; i < max; i++)
{
a[i].index = i;
a[i].value = 0;
}
int N;
cin >> N;
while (N--)
{
int index, value;
cin >> index >> value;
for (int i = 0; i < max; i++)
{
if (a[i].index == index)
{
a[i].value += value;
}
}
}
for (int i = 0; i < max; i++)
{
if (a[i].value != 0)
{
cout << a[i].index << " " << a[i].value << endl;
}
}
system("pause");
return 0;
}