用c语言完成通过主函数调用自定义函数完成对二维数组周边元素的取平均值
时间: 2023-04-03 21:05:01 浏览: 100
可以回答这个问题。以下是示例代码:
```c
#include <stdio.h>
void average(int arr[][3], int row, int col) {
int sum = 0;
int count = 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];
count++;
}
}
}
float avg = (float)sum / count;
printf("周边元素的平均值为: %.2f\n", avg);
}
int main() {
int arr[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
average(arr, 3, 3);
return 0;
}
```
输出结果为:
```
周边元素的平均值为: 5.00
```
相关问题
用C语言编写下列程序定义了n×n的二维数组,并在主函数中赋值。请编写函数fun, 函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数
好的,下面是用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` 函数计算周边元素的平均值,并将结果打印输出。
用c语言程序定义了N×N的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返给主函数中的s。
好的,这个问题可以回答。以下是函数fun的代码:
```
float fun(int arr[][N], int n) {
float sum = ;
int count = ;
for (int i = ; i < n; i++) {
for (int j = ; j < n; j++) {
if (i == || i == n - 1 || j == || j == n - 1) {
sum += arr[i][j];
count++;
}
}
}
return sum / count;
}
```
在主函数中,可以这样调用函数并获取返回值:
```
float s = fun(arr, N);
```
其中,arr是定义好的二维数组,N是数组的大小。函数会计算数组周边元素的平均值并返回给主函数中的s。