题解 | 合并表记录
合并表记录
https://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201
#include <stdbool.h> #include <stdio.h> int main() { int a, b; int i, j; int m[500]; int n[500]; int* mb = m; int* nb = m; scanf("%d", &a); b = 0; while (b < a) { scanf("%d %d", &m[b], &n[b]); b++; } for (i = 0; i < a - 1; i++) { for (j = 0; j < a - 1 - i; j++) { if (m[j] >= m[j + 1]) { int buf = m[j]; m[j] = m[j + 1]; m[j + 1] = buf; int bus = n[j]; n[j] = n[j + 1]; n[j + 1] = bus; } } } for (b = 0; b <a; b++) { if (b <= 0) { continue; } else { if (m[b] == m[b- 1]) { n[b] = n[b]+ n[b-1]; if (b == a-1) { printf("%d %d\n", m[b],n[b]); } } else { printf("%d %d\n", m[b-1],n[b-1]); if (b == a-1) { printf("%d %d\n", m[b],n[b]); } } } } return 0; }