编程题
下列程序定义了N×N的而维数组,并在主函数中自动赋值。请编写函数fun,函数的功能是:求出数组周边元素 的平均值 并作为函数值返回给主函数中的s则返回主程序后s 的值应为3.375.
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define N 5
double fun (int w[][N])
{
}
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;
FILE *out;
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);
out = fopen("out.dat", "w");
fprintf(out, "%lf", s);
fclose(out);
}
答案是:
double fun(int w[][N])
{
int i,j,k=0;
double s=0.0;
for(j=0;j<N;j++)
{
s+=w[0][j];
k++;
}
for(j=0;j<N;j++)
{
s+=w[N-1][j];
k++;
}
for(i=1;i<=N-2;i++)
{
s+=w[i][0];
k++;
}
for(i=1;i<=N-2;i++)
{
s+=w[i][N-1];
k+;
}
rturn s/=k;
}