*请编写函数fun,函数的功能是:求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。 例如,若二维数组中的值为 1 3 5 7 9 2 9 9 9 4 6 9 9 9 8 1 3 5 7 0 则函数值为61。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:*/ #include<stdio.h> #include<stdlib.h> #define M 4 #define N 5 int fun( int a [M][N]) { /***************Begin************/ /*************** End ************/ } void main() { FILE *wf,*in; int aa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,10}}; int i, j, y; printf ("The original data is :\n "); for(i=0; i<M;i++) {for (j=0; j<N;j++) printf("%6d ",aa[i][j]); printf("\n "); } y=fun(aa); printf("\nThe sun: %d\n ",y); printf("\n "); /******************************/ in=fopen("in10.dat","r"); wf=fopen("out10.dat","w"); for(i=0;i<M;i++) for(j=0;j<N;j++) fscanf(in,"%d",&aa[i][j]); y=fun(aa); fprintf (wf,"%d",y); fclose(wf); fclose(in); /*****************************/ system("pause"); }
时间: 2023-08-20 20:04:46 浏览: 68
```
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 || j == 0 || i == M - 1 || j == N - 1) {
sum += a[i][j];
}
}
}
return sum;
}
```
相关问题
请编写函数 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
#include <stdio.h>
int fun(int arr[][5], int row, int col) {
int sum = 0;
// 计算上下两行的和
for (int j = 0; j < col; j++) {
sum += arr[0][j] + arr[row - 1][j];
}
// 计算左右两列的和
for (int i = 1; i < row - 1; i++) {
sum += arr[i][0] + arr[i][col - 1];
}
return sum;
}
int main() {
int arr[5][5] = {{1, 2, 3, 4, 5},
{6, 7, 8, 9, 10},
{11, 12, 13, 14, 15},
{16, 17, 18, 19, 20},
{21, 22, 23, 24, 25}};
int sum = fun(arr, 5, 5);
printf("周边元素之和为:%d", sum);
return 0;
}
```
其中,`fun()`函数接收一个二维数组和它的行、列数作为参数,计算出周边元素之和,并返回这个和;`main()`函数创建了一个5行5列的二维数组,并调用`fun()`函数计算周边元素之和,最后打印结果。