程序定义了N*N的二维数组,并在主函数中赋值,请编写函数fun,函数功能是:求出数组周边元素的平均值并作为函数值返给主函数中的s。
#include <stdio.h>
#include <stdlib.h>
#define N 5
double fun ( int w[][N] )
{
int i,j,n=0;
double s=0,av;
for(i=0;i<N;i++)
{
s+=w[i][0];
n++;
s+=w[i][N-1];
n++;
}
for(j=1;j<N-1;j++)
{
s+=w[0][j];
n++;
s+=w[N-1][j];
n++;
}
av=s/n;
return av;
}
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 );
}
供参考:
#include < stdio.h >
#define N 5
double fun(int w[][N])
{
int i, j, k = 0;
double sum = 0.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];//将周边元素求和
k++;
}
return sum / k;//求周边元素的平均值
}
int 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 };
double s;
s = fun(a);
printf("%lf", s);
return 0;
}
【以下回答由 GPT 生成】
问题详细描述:我需要编写一个C语言函数fun,用于计算二维数组的周边元素的平均值,并将结果返回给主函数中的变量s。我已经了解了二维数组的操作和基础函数的编写知识。
首先,我需要了解该二维数组的大小和元素类型,以便进行代码编写。假设二维数组的大小为rows行cols列,元素类型为整数(int)。
以下是解决该问题的具体步骤:
int arr[rows][cols] = { /* 初始化二维数组 */ };
double s = 0; // 存储计算结果的变量,初始值为0
void fun(int arr[][cols], int rows, int cols, double* s) {
int sum = 0; // 用于累加周边元素的和
// 计算上边行的元素平均值
for (int j = 0; j < cols; j++) {
sum += arr[0][j]; // 累加上边行的元素
}
// 计算下边行的元素平均值
for (int j = 0; j < cols; j++) {
sum += arr[rows - 1][j]; // 累加下边行的元素
}
// 计算左边列的元素平均值(不包括上下边行的元素)
for (int i = 1; i < rows - 1; i++) {
sum += arr[i][0]; // 累加左边列的元素
}
// 计算右边列的元素平均值(不包括上下边行的元素)
for (int i = 1; i < rows - 1; i++) {
sum += arr[i][cols - 1]; // 累加右边列的元素
}
int count = (rows + cols - 2) * 2; // 计算周边元素的总个数
*s = (double)sum / count; // 计算周边元素的平均值
}
fun(arr, rows, cols, &s);
现在,变量s中存储了二维数组周边元素的平均值。
请注意,以上代码仅为示例,需要根据实际情况进行调整和优化。
【相关推荐】