题目描述 输入数字矩阵的长和宽以及矩阵中的数据,输出其二维前缀和矩阵。 输入描述 第一行为两个数字n和m,分别表示矩阵的行数和列数。之后n行,每行m个用空格分开的整数,表示矩阵中的数。 输出描述 n行,每行m个数,用空格间隔,表示二维前缀和矩阵。 样例1 输入 2 3 1 2 3 5 6 7 输出 1 3 6 6 14 24 提示 n和m不超过100,每个数的大小不超过1000。 C++不能用函数
时间: 2024-03-04 09:48:40 浏览: 128
好的,这是一个计算二维前缀和矩阵的问题,下面是一个C++的实现示例,不使用函数:
```c++
#include <iostream>
using namespace std;
const int MAXN = 105;
int n, m, a[MAXN][MAXN], s[MAXN][MAXN];
int main() {
cin >> n >> m;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cin >> a[i][j];
s[i][j] = s[i][j-1] + s[i-1][j] - s[i-1][j-1] + a[i][j];
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cout << s[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
其中,s数组即为二维前缀和矩阵,计算公式为:s[i][j] = s[i][j-1] + s[i-1][j] - s[i-1][j-1] + a[i][j],其中a数组为输入的数字矩阵。最后输出s数组即可。
阅读全文