C Language Logo
C语言二级在线二级在线
首页选择题程序题成为会员帮助其他科目

二维数组周边元素之和

请修改编辑器中的代码,完成以下功能:编写一个 C 程序,计算二维数组中位于边界位置的元素之和。程序首先输出原始数据,然后计算边界元素之和并输出。接着,从文件中读取 5组数据,对每组数据执行同样的计算并将结果写入另一个文件。二维数组的大小为 4 行 5 列,初始数据已在代码中给定。 输入格式: 不需要输入 输出示例: The original data is : 1 3 5 7 9 2 9 9 9 4 6 9 9 9 8 1 3 5 7 0 The sum: 61 附件恰好5组完整4×5矩阵;只需补全fun,文件读取组数已与现有附件一致。

#include <stdio.h>
#define  M  4
#define  N  5
int  fun ( int a[M][N] )
{



}

int main(void)
{  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;void NONO ();
   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  sum:  %d\n" , y );
   printf("\n");
   NONO( );
  }

void NONO ()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,
    输出数据,关闭文件。 */
  int i, j, y, k, aa[M][N] ;
  FILE *rf, *wf ;

  rf = fopen("in.txt","r") ;
  wf = fopen("out.txt","w") ;
  for(k = 0 ; k < 5 ; k++) {
    for(i = 0 ; i < M ; i++)
    for(j = 0 ; j < N ; j++) fscanf(rf, "%d", &aa[i][j]) ;
    y = fun ( aa );
    fprintf(wf, "%d\n", y) ;
  }
  fclose(rf) ;
  fclose(wf) ;
}

控制台

调试终端

准备就绪