使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun,该函数的功能是:求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。 例如,若二维数组中的值为

admin2018-10-21  29

问题 使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数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 M4
#define N5
int fun(int a[M][N])
{

}
void main()
{
FILE*wf;
int aa[M][N]=f{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[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||i==﹣1||j==0||j==N﹣1)/*只要下标中有一个为0或M一1或N一1,则它一定是周边元素*/ sum=sum+a[i][j];/*将周边元素相加*/ return sum; }

解析 本题采用逐一判断的方式。二维数组周边元素的规律是,其两个下标值中一定有一个是0或M﹣1或N﹣1。程序中循环语句用来控制数组的行和列,条件语句用来判断数组元素是否为周边元素。
转载请注明原文地址:https://kaotiyun.com/show/YMxp777K
0

最新回复(0)