题解 | #合并表记录#
合并表记录
https://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201
#include <iostream> using namespace std; int main() { //方法一:思路没问题,但是空间过大报错 // int index[11111112]={0}; // int num; // cin>>num; // int temp; // int value; // for(int i =0;i<num;i++) // { // cin>>temp; // cin>>value; // index[temp]=index[temp]+value; // } // for(int i;i<11111112;i++) // { // if(index[i]) // { // cout<<i<<' '<<index[i]<<endl; // } // } int index[501] = {0}; int value[501] = {0}; int newindex[501] = {0}; int newvalue[501] = {0}; int temp1; int temp2; int temp3 = 0; int lenth = 0; int n; cin >> n; for (int i = 0; i < n; i++) { cin >> temp1; cin >> temp2; index[i] = temp1; value[i] = temp2; }//逐一输入 for (int i = 0; i < n; i++) { //两个数组按index值大小排序 for (int j = i + 1; j < n; j++) { if (index[i] > index[j]) { temp3 = value[i]; value[i] = value[j]; value[j] = temp3; temp3 = index[i]; index[i] = index[j]; index[j] = temp3; } } } for (int i = 0; i < n; i++) { if (index[i] == index[i - 1]) { newvalue[lenth] = newvalue[lenth] + value[i]; } else { newindex[++lenth] = index[i]; newvalue[lenth] = value[i]; } } for (int i = 1; i < lenth + 1; i++) { cout << newindex[i] << ' ' << newvalue[i] << endl; } }