题解 | #合并表记录#
合并表记录
https://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201
#include <stdio.h>
int main(void) {
typedef struct {
int key[500];
int value[500];
} Map;
Map map;
for (int i=0;i<500; i++) {
map.key[i]=11111112;
map.value[i]=0;
}
int total;
scanf("%d", &total);
for (int i = 0; i < total; i++) {
int key, value;
scanf("%d %d", &key, &value);
map.key[i] = key;
map.value[i] = value;
}
for (int i = 0; i < total - 1; i++) {
for (int j = 0; j < total - 1 - i; j++) {
if (map.key[j] > map.key[j + 1]) {
Map temp;
temp.key[j] = map.key[j];
map.key[j] = map.key[j + 1];
map.key[j + 1] = temp.key[j];
temp.value[j] = map.value[j];
map.value[j] = map.value[j + 1];
map.value[j + 1] = temp.value[j];
}
}
}
for (int i = 0; i < total; i++) {
for (int j = i+1; j < total; j++) {
if (map.key[i] == map.key[j]) {
map.value[i] += map.value[j];
map.value[j] = 0;
}
}
}
for (int i = 0; i < total; i++) {
if (map.value[i]) {
printf("%d %d\n",map.key[i],map.value[i]);
}
}
return 0;
}

OPPO公司福利 1210人发布