问答题 请编写函数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<stdlib.h>
#include<conio.h>
#include<stdio.h>
#define M 4
#define N 5
int fun(int a[M][N])
{
}
void 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;
system("CLS");
printf("The original data is:/n");
for(i=0; i<M; 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; 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。程序中循环语句用来控制数组的行和列,条件语句用来判断数组元素是否为周边元素。