1.题目描述
数据表记录包含表索引和数值(int范围的整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
2.输入描述:
先输入键值对的个数
然后输入成对的index和value值,以空格隔开
3.输出描述:
输出合并后的键值对(多行)
4.示例1
输入
4
0 1
0 2
1 2
3 4
输出
0 3
1 2
3 4
思路
num[a] += b;累加
循环接收表格数据;
max作用,标记最大索引
temp作用是标记哪些索引被用到。
5.代码
#include <stdio.h>
#include <stdio.h>
int main(void)
{
int n, num[1000] = { 0 };
int temp[1000] = { 0 };
int max = 0;
while ((scanf("%d",&n) != EOF) && n>0)
{
for (int i = 0; i < n; i++)
{
int a, b;
scanf("%d %d", &a, &b);
if (max<=a)
{
max = a;
}
num[a] += b;
temp[a] = 1;
}
for (int i = 0; i <= max; i++)
{
if (num[i] == 0 && temp[i] ==0 )
continue;
else
{
printf("%d %d\n", i, num[i]);
}
}
}
return 0;
}