用C语言编写下列程序定义了n×n的二维数组,并在主函数中赋值。请编写函数fun, 函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数
时间: 2024-04-11 07:28:01 浏览: 115
函数指针、函数名、二维数组指针做形参
好的,下面是用C语言编写的程序,实现了你的要求:
```c
#include <stdio.h>
double fun(int arr[][n], int n) {
int sum = 0;
int count = 0;
// 计算上下左右四个边的元素之和
for (int i = 0; i < n; i++) {
sum += arr[0][i]; // 上边
sum += arr[n - 1][i]; // 下边
sum += arr[i][0]; // 左边
sum += arr[i][n - 1]; // 右边
count += 4;
}
// 排除重复计算的四个角的元素
sum -= (arr[0][0] + arr[0][n - 1] + arr[n - 1][0] + arr[n - 1][n - 1]);
count -= 4;
// 返回平均值
return (double)sum / count;
}
int main() {
int n;
printf("请输入数组的大小n:");
scanf("%d", &n);
int arr[n][n];
printf("请输入%d×%d的二维数组元素:\n", n, n);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &arr[i][j]);
}
}
double avg = fun(arr, n);
printf("数组周边元素的平均值为:%.2f\n", avg);
return 0;
}
```
这段代码中,首先在 `fun` 函数中计算了数组周边元素的和,并将出现的元素个数累加到 `count` 变量中。然后,通过减去四个角的元素之和,排除了重复计算的部分。最后,将和除以元素个数得到平均值,并作为函数值返回给主函数。
在主函数中,首先读取了数组的大小 `n`,然后定义了一个 `n×n` 的二维数组 `arr` 并进行赋值。接下来,调用 `fun` 函数计算周边元素的平均值,并将结果打印输出。
阅读全文