题目描述:
数据表记录包含表索引和数值(int范围的整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
输入描述:
先输入键值对的个数。
然后输入成对的 index 和 value 值,以空格隔开。
输出描述:
输出合并后的键值对(多行)。
示例1
输入
4
0 1
0 2
1 2
3 4
输出
0 3
1 2
3 4
示例代码 (1) 网页 OK;Linux 也 OK
Linux 编译命令:(参数 time 是用于显示程序运行时间)
gcc example.c -o example
time ./example
#include <stdio.h>
int main()
{
int i, key, value, num;
int buf[5000] = {0};
scanf("%d", &num);
for (i=0; i<num; i++)
{
scanf("%d %d", &key, &value);
buf[key] += value;
}
for (i=0; i<5000; i++)
{
if (buf[i] != 0)
printf("%d %d\n", i, buf[i]);
}
return 0;
}