请补充函数fun(),该函数的功能是:计算N×N维矩阵元素的方差,结果由函数返回。维数N在主函数中输入。例如:
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
#define N 20
double fun( 【1】 ,int n)
int i,j;
int k;
double s=0.0;
double f=0.0;
double aver=0.0;
double sd=0.0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
s+=a[i][j];
aver= 【2】 ;
for(i=0;i<n;i++)
for(j=0;i<n;j++)
f+=(a[i][j]-aver)*(a[i][j]-aver);
f/=(n*n);
sd= 【3】 ;
return sd;
main()
int a[N][N];
int n;
int i,j;
double s;
clrscr();
printf("***+Input the dimension of
array N*****\n");
scanf("%d",&n);
printf("***** The array *****\n");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
a[i][j]=rand()%50;
while(a[i][j]=0)
a[i][j]=rand()%60;
printf("%4d",a[i][j]);
printf("\n\n");
s=fun(a,n);
printf("******* THE RESULT *******\n");
printf("%4.3f\n",s);
参考答案:【1】int a[][N] 【2】s/(n*n) 【3】sqrt(f)
解析:
填空1;由主函数main()中对函数fun()的调用格式,可以知道,函数fun()的第一个参数是N×N的二维整型数组。填空2:平均值等于所有元素的累加和除以个数。填空3;根据公式,方差sd等于对变量f开平方,这里注意对数学库函数的调用。