程序定义了N×N的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返给主函数中的s。
例如:a 数组中的值为
|0 1 2 7 9|
|1 9 7 4 5|
a = |2 3 8 3 1|
|4 5 6 8 2|
|5 9 1 4 1|
则返回主程序后s的值应为: 3.375。
注意: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句
#include <stdio.h>
#include <stdlib.h>
#define N 5
double fun ( int w[][N] )
{
int i,j,k=0;
double s=0.0;
for (i=0;i<N;i++)
for (j=0;j<N;j++)
if (i==0||i==N-1||j==0||i==N-1)
{
s=w[i][j]+s;
k++;
}
return s/k;
红色是我自己写的
}
main ( )
{ int a[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1};
int i, j;void NONO ();
double s ;
printf("***** The array *****\n");
for ( i =0; i<N; i++ )
{ for ( j =0; j<N; j++ )
{ printf( "%4d", a[i][j] ); }
printf("\n");
}
s = fun ( a );
printf ("***** THE RESULT *****\n");
printf( "The sum is : %lf\n",s );
NONO( );
}
void NONO ()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *rf, *wf ;
int i, j, a[5][5]; double s ;
rf = fopen("in.dat","r") ;
wf = fopen("out.dat","w") ;
for(i = 0 ; i < 5 ; i++)
for(j = 0 ; j < 5 ; j++) fscanf(rf, "%d ", &a[i][j]) ;
s = fun(a) ;
fprintf(wf, "%lf\n", s);
fclose(rf) ;
fclose(wf) ;
}