题目:程序定义了N×N的二维数组,并在主函数中赋值。 请编写函数fun,函数的功能是:求出数组周边元素的平均值 并作为函数值返给主函数中的s。 -------------------------------------------------------*/ #include <stdio.h> #include <stdlib.h> #define N 5 double fun ( int w[][N] ) { /**********Program**********/ /********** End **********/ } main ( ) { int a[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1}; int i, j; double s ; printf("***** The array *****\n"); for ( i =0; i<N; i++ ) { for ( j =0; j<N; j++ ) { printf( "%4d", a[i][j] ); } printf("\n"); } s = fun ( a ); printf ("***** THE RESULT *****\n"); printf( "The sum is : %lf\n",s ); }
时间: 2023-07-18 17:42:30 浏览: 101
函数指针、函数名、二维数组指针做形参
这段代码定义了一个N×N的二维数组a,并调用了函数fun来求出数组周边元素的平均值并作为函数值返回给主函数中的s。最后输出原始的数组a和求得的平均值s。
以下是函数fun的实现:
```
double fun(int w[][N]) {
int i, j;
double sum = 0;
int count = 0;
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
if (i == 0 || i == N - 1 || j == 0 || j == N - 1) {
sum += w[i][j];
count++;
}
}
}
return sum / count;
}
```
该函数使用两层循环遍历二维数组w,对于每一个边界元素(即第一行、最后一行、第一列、最后一列的元素),将其值累加到sum中,并统计边界元素的个数。最后将sum除以边界元素个数得到平均值,并将其返回。
阅读全文