编写函数,求出二维数组周边元素之和。请将下面的程序复制粘贴到VC中,完善函数fun的函数体,运行正确后,再将完整的程序复制粘贴到填写答案处。 #define M 4 #define N 5 #include "stdio.h" int fun(int a[M][N]) { } main() { int a[M][N],i,j,y; for(i=0;i<M;i++) for(j=0;j<N;j++) scanf("%d",&a[i][j]); y=fun(a); printf("s=%d\n",y); }
时间: 2023-11-27 22:53:56 浏览: 36
完整程序如下:
```c
#include <stdio.h>
#define M 4
#define N 5
int fun(int a[M][N]) {
int sum = 0;
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 += a[i][j];
}
}
}
return sum;
}
int main() {
int a[M][N], i, j, y;
for (i = 0; i < M; i++)
for (j = 0; j < N; j++)
scanf("%d", &a[i][j]);
y = fun(a);
printf("s=%d\n", y);
return 0;
}
```
函数 `fun` 的实现思路是遍历二维数组,当元素位于数组周边时,将其累加到 `sum` 中。最后返回 `sum` 即可。在 `main` 函数中,先读入二维数组,再调用 `fun` 函数进行计算并输出结果。
相关问题
请编写函数 fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组
题意理解:
本题要求编写一个函数,函数的输入是一个二维数组,输出是该二维数组的周边元素之和。
二维数组的周边元素指的是二维数组的最外层元素,包括左上角、右上角、左下角、右下角以及四周的边界。
函数实现:
本题可以通过两个循环实现,首先我们需要求出二维数组的行数和列数,然后遍历每一个元素,如果当前元素在周边位置上,则将其加入到周边元素之和中。
具体的函数代码如下:
```python
def fun(arr):
m, n = len(arr), len(arr[0]) # 获取二维数组的行数和列数
res = 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:
res += arr[i][j] # 如果当前元素在周边位置上,则将其加入到周边元素之和中
return res
```
测试样例:
下面是对函数的测试样例进行验证:
```python
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # 二维数组
print(fun(arr)) # 输出函数的返回值,期望输出为 1+2+3+4+6+7+8+9=40
```
代码输出结果:
```python
40
```
因此,我们可以看到函数返回的值与期望输出值相同,函数实现正确。
编写fun函数求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予,c语言
以下是求二维数组周边元素之和的C语言代码:
```c
int fun(int arr[][N], int row, int col) {
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];
}
}
}
return sum;
}
int main() {
int arr[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
int sum = fun(arr, 3, 4);
printf("周边元素之和为:%d\n", sum);
return 0;
}
```
其中,`fun`函数接收二维数组、行数和列数作为参数,使用两重循环遍历每个元素,如果该元素位于二维数组的周边,则将其值累加到`sum`变量中。最后将`sum`作为函数返回值。
在`main`函数中,我们定义了一个3行4列的二维数组`arr`,然后调用`fun`函数,将其返回值保存在`sum`变量中,并输出结果。