hj8 合并表记录c++ 华为机试
思路
利用结构体完成的(c++后面的内容还没学)
struct List { int index; int value; };
#include<iostream> #include<string> using namespace std; struct List { int index; int value; }; void BubbleSort(List a[], int n) { bool ch = true; for (int j = 0; j < n - 1 && ch; ++j) { ch = false; for (int k = 0; k < n - j - 1; ++k) { if (a[k].index > a[k + 1].index ) { List max = a[k]; a[k] = a[k + 1]; a[k + 1] = max; ch = true; } } } } void test01() { int n = 0; cin >> n; if (n >= 1 && n <= 500) { List* arr = new List[n]; for (int i = 0; i < n && n != 0; ++i) { cin >> arr[i].index >> arr[i].value; } for (int i = 0; i < n; ++i) { for (int j = i; j < n; ++j) { if (arr[i].index == arr[j].index && i != j) { arr[i].value += arr[j].value; for (int k = j; k < n; ++k) { arr[k] = arr[k + 1]; } --n; --j; } } } BubbleSort(arr, n); //cout << "输出" << endl; for (int i = 0; i < n; ++i) { cout << arr[i].index << " " << arr[i].value << endl; } } } int main() { test01(); system("pause"); return 0; }