问答题 请编写函数fun(),函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。
例如:若二维数组中的值为
1 3 5 7 9
2 9 9 9 4
6 9 9 9 8
1 3 5 7 0
则函数值为61。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#define M 4
#define N 5
int fun( int a [M][N])



main()

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;
clrscr();
printf ("The original data is :/n ");
for(i=0; i<N;i++)
for (j=0; j<N;j++)
printf("%6d ",aa[i][j]);
printf("/n ");

y=fun(aa);
printf("/nThe sun:%d/n ",y);
printf("/n");


【正确答案】int fun( int a [M] [N])
{
int i,j,sum=0;
for(i=0;i<M;i++)
for(j=0;i<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,且只要下标中有一个为0或M-1或N-1,则它一定是周边元素。