问答题
1. 请编写函数proc(),函数的功能是:求出二维数组周边元素之和,将其作为函数值返回。二维数组中的值在主函数中赋予。
例如,若二维数组中的值为:
0 1 2 3 4
5 9 7 4 5
4 3 8 3 6
3 5 6 8 7
则函数值为59。
注意:部分源程序如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#define M 4
#define N 5
int proc(int a[M][N])
{
}
void main()
{
int aa[M][N]={{0,1,2,3,4},{5,9,7,4,5},
{4,3,8,3,6},{3,5,6,8,7}};
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=proc(aa);
printf("\nThe sun:%d\n",y);
printf("\n");
}
【正确答案】int proc(int a[M][N])
{
int i,j,sum=0;
for(i=0;i<M;i++) //i是行下标变量
for(j=0;j<N;j++) //j是列下标变量
if(i==0||i==M-1||j==0||j==N-1) //if用来判断是否为周边元素,即行或列下标是否为0或N-1
sum=sum+a[i][j]; //对周边元素求和
return sum; //最后把所得到的和返回给主函数
}
【答案解析】 要求二维数组周边元素之和,首先应该判断数组中的每一个元素是否是周边元素。找出所有的周边元素后求和,返回给主函数。周边元素的下标的特点为行或列的下标为0或(N-1)。根据此特点,找出所有的周边元素,然后求和。