#include <iostream>
#include <vector>
using namespace std;
int main() {
	int m,n;
	while(cin>>m>>n) {
		vector<vector<int> > arr;
		//填充数据 
		for(int i = 0; i < m; i++) {
			vector<int> row;
			for(int j = 0; j < n; j++) {
				int input;
				cin>>input;
				row.push_back(input);
			}
			arr.push_back(row);
		}
		//每一行从右向左 求和 同时记录最大值的下标 最后将和填入最大值下标处 
		for(int i = 0; i < m; i++) {
			int sum = 0;
			int maxInx = n - 1;
			for(int j = n-1; j >= 0; j--) {
				sum +=arr[i][j];
				if(arr[i][j] >= arr[i][maxInx]) {
					maxInx = j;
				}
			}
			arr[i][maxInx] = sum;
		}
		for(int i = 0; i < m; i++) {
			for(int j = 0; j < n; j++) {
				cout<<arr[i][j]<<" ";
			}
			cout<<endl;
		}
	}
	return 0;
}

1、利用vector动态创建二维数组

2、数组扫描