题目描述 求一个二维数组周边元素的累加和。 输入一个二维数组的行数m(m<10),列数n(n<10),二维数组的各元素值。输出周边元素之和。 输入 输入的第一行为矩阵的行数和列数,从第二行开始,为矩阵元素的输入。 输出 输出周边元素之和。 样例输入 3 4 1 2 3 4 5 6 7 8 1 2 3 4 样例输出 33 C语言完成
时间: 2024-03-08 16:47:08 浏览: 51
以下是C语言的代码实现:
```c
#include <stdio.h>
int main() {
int m, n, sum = 0;
int arr[10][10];
scanf("%d %d", &m, &n);
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &arr[i][j]);
}
}
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (i == 0 || i == m - 1 || j == 0 || j == n - 1) {
sum += arr[i][j];
}
}
}
printf("%d", sum);
return 0;
}
```
我们首先输入二维数组的行数m和列数n,然后依次输入二维数组的各个元素值。接着,我们遍历整个二维数组,如果当前元素在数组的周边位置(即第一行、最后一行、第一列、最后一列),则将其累加到sum中。最后,输出sum即可。
相关问题
c 语言 求一个二维数组周边元素的累加和
假设二维数组为 `arr`,数组的行数为 `row`,列数为 `col`,可以使用如下代码求解周边元素的累加和:
```c
int sum = 0;
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
if (i == 0 || i == row - 1 || j == 0 || j == col - 1) {
// 判断是否为边缘元素
sum += arr[i][j];
}
}
}
```
上述代码中,使用两层循环遍历二维数组的所有元素。对于每个元素,通过判断其是否为边缘元素,来决定是否将其累加到总和中。当 `i` 或 `j` 等于 0 或者等于数组的最大下标时,即表示该元素在数组的边缘位置。
求一个二维数组周边元素的累加和。输入一个二维数组的行数m,列数n,二维数组的个元素值。输出周边元素之和。
以下是一个Python实现的例子:
```python
m = int(input("请输入二维数组的行数:"))
n = int(input("请输入二维数组的列数:"))
# 初始化二维数组
arr = []
for i in range(m):
row = list(map(int, input(f"请输入第{i+1}行的元素,用空格分隔:").split()))
arr.append(row)
# 计算周边元素之和
sum = 0
for i in range(m):
for j in range(n):
if i == 0 or i == m-1 or j == 0 or j == n-1:
sum += arr[i][j]
elif i == 1 or i == m-2 or j == 1 or j == n-2:
sum += arr[i][j]
print("周边元素之和为:", sum)
```
先输入二维数组的行数和列数,然后逐行输入每个元素的值。接下来,我们遍历整个二维数组,累加周边元素的值。对于位于二维数组边缘的元素,我们直接累加;对于第二层边缘的元素,我们也进行累加。最后输出周边元素之和。