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