题解 | 合并表记录
合并表记录
https://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201
#include <stdio.h>
struct LOG {
int num;
int value;
};
int main() {
int n;
scanf("%d", &n);
struct LOG log[500] = {-1, 0};
struct LOG log_n[500] = {-1, 0};
int count = 0;
for (int i = 0; i < n; i++) {
scanf("%d %d", &log[i].num, &log[i].value);
}
//调整索引值的顺序
struct LOG temp = {0, 0};
for (int p = 0; p < n - 1; p++) {
for (int q = 0; q < n - p - 1; q++) {
if (log[q].num > log[q + 1].num) {
temp = log[q];
log[q]= log[q + 1];
log[q + 1] = temp;
}
}
}
log_n[0].num = log[0].num;
log_n[0].value = log[0].value;
for (int i = 1, j = 0; i < n; i++) {
if (log[i].num == log_n[j].num) {
log_n[j].value += log[i].value;
} else {
j++;
log_n[j].num = log[i].num;
log_n[j].value = log[i].value;
}
count = j;
}
for (int s = 0; s <= count; s++) {
printf("%d %d\n", log_n[s].num, log_n[s].value);
}
return 0;
}