题目内容:计算一个NxM(1≤N、M≤100)二维数组A所有边沿元素的和s1,所有内芯元素的和s2,输出s1-s2。 输入格式:第1行输入整型n和m,接下来输入n行,每行m个元素给A,数据之间用空格隔开。 输出格式:输出s1-s2为整型。 输入样例: 3 4 1 1 1 1 1 2 2 1 1 1 1 1 输出样例: 6 C++
时间: 2024-02-12 15:03:47 浏览: 191
4-14_lv一维数组中所有元素之和_
以下是C++代码实现:
```c++
#include <iostream>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
int a[n][m];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> a[i][j];
}
}
int s1 = 0, s2 = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (i == 0 || i == n - 1 || j == 0 || j == m - 1) {
s1 += a[i][j];
} else {
s2 += a[i][j];
}
}
}
cout << s1 - s2 << endl;
return 0;
}
```
解释如下:
1. 首先输入数组的行数和列数,然后定义一个二维数组 `a` 存储输入的元素。
2. 分别计算所有边沿元素和内部元素的和 `s1` 和 `s2`。
- 如果是边沿元素(即第一行、最后一行、第一列和最后一列),则加入 `s1` 中。
- 如果是内部元素,则加入 `s2` 中。
3. 最后输出 `s1-s2` 的值。
注意事项:
1. 数组下标从 0 开始。
2. 求和时需要先初始化为 0。
3. 计算边沿元素时,需要使用逻辑运算符 `||` 进行判断。
阅读全文