用fun函数编写一个二维数组

程序定义了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)。

以下是解决该问题的具体步骤:

  1. 在主函数中声明和初始化一个二维数组arr,并定义一个变量s用于存储计算结果。例如:
int arr[rows][cols] = { /* 初始化二维数组 */ };
double s = 0; // 存储计算结果的变量,初始值为0
  1. 编写函数fun来计算二维数组的周边元素平均值,并将结果返回给主函数中的变量s。函数定义如下:
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; // 计算周边元素的平均值
}
  1. 在主函数中调用函数fun,并将结果存储在变量s中。例如:
fun(arr, rows, cols, &s);

现在,变量s中存储了二维数组周边元素的平均值。

请注意,以上代码仅为示例,需要根据实际情况进行调整和优化。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^