编程描述:一行输入三个空格隔开的整数n,m,k。n,m表示矩阵的大小,k表示子矩阵的大小。输出描述:所有k*k的子矩阵的和。用c++编程
时间: 2024-05-04 13:18:54 浏览: 23
以下是C++代码实现:
```cpp
#include <iostream>
using namespace std;
int main() {
int n, m, k;
cin >> n >> m >> k;
int matrix[n][m];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> matrix[i][j];
}
}
int sum = 0;
for (int i = 0; i <= n - k; i++) {
for (int j = 0; j <= m - k; j++) {
int sub_sum = 0;
for (int a = i; a < i + k; a++) {
for (int b = j; b < j + k; b++) {
sub_sum += matrix[a][b];
}
}
sum += sub_sum;
}
}
cout << sum << endl;
return 0;
}
```
该代码首先读入矩阵的大小n和m,以及子矩阵的大小k。接着读入n*m个整数,构成一个n行m列的矩阵。然后,代码遍历所有k*k的子矩阵,并计算它们的和,最后将所有子矩阵的和加起来得到最终结果。