请编写函数int fun ,a是一个M行N列的二维数组,函数的功能是求出二维数组周边元素之和,作为函数值返回。

#include <conio.h>#include <stdio.h>#define  M  4#define  N  5int  fun ( int a[M][N] ){ }NONO( ){/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,    输出数据,关闭文件。 */  int i, j, y, k, aa[M][N] ;  FILE *rf, *wf ;  rf = fopen("bc4.in", "r") ;  wf = fopen("bc4.out", "w") ;  for(k = 0 ; k < 10 ; 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) ;}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;   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( );}

int fun ( int a[M][N] )

{

int i,j,sum=0;

for(i=1;i<M-1;i++){//将边上的两列元素除了首尾两行其余相加

sum+=(a[i][0]+a[i][N-1]);

}

for(j=0;j<N;j++){//将首尾两行元素相加

sum+=(a[0][j]+a[M-1][j]);

}

return sum;

}

特点

1、数组是相同数据类型的元素的集合。

2、数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。

3、数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。

以上内容参考:百度百科-数组

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-18
我已经测试 结果61!
int fun ( int a[M][N] )
{
int i,j,sum=0;
for(i=1;i<M-1;i++){//将边上的两列元素除了首尾两行其余相加
sum+=(a[i][0]+a[i][N-1]);
}
for(j=0;j<N;j++){//将首尾两行元素相加
sum+=(a[0][j]+a[M-1][j]);
}
return sum;
}本回答被提问者采纳
第2个回答  2012-03-10
晕了
相似回答