题目内容:
请补充函数proc(),该函数的功能是:计算M×M维矩阵元素的方差,结果由函数返回。维数M在主函数中输入。例如,输入4,则
的计算结果是12.964。
求方差的公式为:

其中

注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若十表达式或语句。
试题程序:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<math.h>
#define M 20
double proc(【1】 ,int n)
{
int i,j;
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=O;j<n;j++)
f+=(a[i][j]-aver)*(a[i][j]-aver);
f/=(n*n):
sd= 【3】 ;
return sd;
}
void main()
{
int arr[M][M];
int n;
int i,j;
double s;
system("CLS"):
printf("****Input the dimension of
array M****\n");
seanf("%d",&n);
printf("****The array****\n");
for(i=0;i<in;i++)
{
for(j=0;j<n;j++)
{
arr[i][j]=rand()%50;
while(arr[i][j]==0)
arr[i][j]=rand()%60;
printf("%4d",arr[i][j]);
}
printf("\n\n");
}
s=proc(arr,n);
printf("****THE RESULT****\n");
printf("%4.3f\n",s);
}
参考答案:
答案解析: