问答题 请编写函数fun,该函数的功能是:求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。 例如,若二维数组中的值为: 1 3 5 7 9 2 9 9 9 4 6 9 9 9 8 1 3 5 7 0 则函数值为61。 注意:部分源程序在文件PROG1.C中。 请勿改主动函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#include < conio.h >#include < stdio .h >#include < stdlib.h >#define M 4#define N 5int fun ( int a [M] [N1) { }void main () { FILE *wf; int aa[M] [N] = {{1,3,5,7,9 },{2,9,9,9,4},{ 6,9,9,9,8},{1,3,5,7,0 }}; int i, j, y; system ("CLS ") ; printf ("The original data is for (1 =0; i < Mf i++) printf ("% 6d ",aa[i] [ j ]) ; printf ("/n ") ; } y = fun (aa) ; printf ("/nThe sun: % d/n "y) ; printf ("/n ") ;/*********found*********/ wf = fopen ("out.dat", "w") ; fprintf (wf, "% d", y) ; fclose (wf) ;/*********found*********/}
【正确答案】正确答案:int fun(int a[M] [N]) { int i,j,sum =0; for(i=0;i < M;i++) for(j=0;j < N;j++) if(i=一0 1 11 ==M 一1||j==0 ||j==N一1)/* 只要下标中有一个为0或M 一1或N一1,则它一定是周边元素*/ sum=sum+a[i][j];/* 将周边元素相加*/ return sum; }
【答案解析】解析:本题采用逐一判断的方式。二维数组周边元素的规律是,其两个下标值中一定有一个是0或M 一1或N 一1。程序中循环语句用来控制数组的行和列,条件语句用来判断数组元素是否为周边元素。