下列程序定义了N×N的二维数组,并在主函数中赋值。请编写函数fun(),函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s。例如:若a数组中的值为 a= 0 1 2 7 9 1 9 7 4 5

admin2010-05-05  29

问题 下列程序定义了N×N的二维数组,并在主函数中赋值。请编写函数fun(),函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s。例如:若a数组中的值为
   a= 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
   则返回土程序后s的值应为3.375。
   注意:部分源程序给出如下。
   请勿改动主函数main和其他函数中的仟何内容,仅在函数fun的花括号中填入所编写的若干语句。
   试题程序:
       #include <stdio.h>
       #include<conio.h>
       #include<stdlib.h>
       #define  N  5
       double fun  (int w[] [N])
       {
       }
       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;
         clrscr();
         printf("*****The array*****\n  ");
         for  (i=0;  i<N;  i++)
           { for  (j=0;j<N;i++)
               {printf("%4d ",a [j]);}
            printf("\n ");
           }
         s=fun(a);
         printf("*****THE RESULT*****\n ");
         printf("The sum is : %lf\n ",s);
       }

选项

答案double fun (int w[][N]) { int i,j,k=0; double av=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) /*只要下标中有一个为0或N-1,则它一定是周边元素*/ {av=av+w[i][j]; /*将周边元素求和*/ k++; } return av/k; /*求周边元素的平均值*/ }

解析 该题采用逐一判断的方式,周边元素的下标一定有一个是0或N-1,且只要下标中有一个为0或N-1,则它一定是周边元素。计算周边元素个数的方式是当给av加一个值时,则k加1。k也可用2*N+2*N-4求得。
转载请注明原文地址:https://jikaoti.com/ti/TKkiFFFM
0

相关试题推荐
最新回复(0)