#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、数组扫描

京公网安备 11010502036488号