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

admin2020-06-02  34

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

    则函数值为61。
    注意:部分源程序在文件PROG1.C中。
    请勿改主动函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
    试题程序:
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#define M 4
#define N 5
int fun(int a[M][N])
{

}
void main()
{
  FILE*wf;
  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[j]);
      printf("\n");
}
  y=fun(aa);
  printf("\nThe sun:%d\n",y);
  printf("\n");
/*****************/
  wf=fopen("out.dat","w");
  fprintf(wf,"%d",y);
  fclose(wf);
/*****************/
}

选项

答案{ 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。程序中循环语句用来控制数组的行和列,条件语句用来判断数组元素是否为周边元素。
转载请注明原文地址:https://jikaoti.com/ti/J3G0FFFM
0

最新回复(0)