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