请补充函数fun,其功能是:计算并输出给定10个数的方差:
例如,给定的10个数为15.0,19.0,16.0,15.0,18.0,12.0, 15.0,11.0,10.0,16.0,输出为s=2.758623。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio.h>
#include<math. h>
double fun (double x[10])
int i;
double avg=0.0;
double sum=0.0;
double abs=0.0;
double sd;
for (i=0; i<10; i++)
【1】 ;
avg=sum/10;
for(i=0;i<10;i++)
【2】 ;
sd= 【3】 ;
return sd;
main()
double s,x[10]=15.0,19.0,16.0,15.0,
18.0,12.0,15.0,11.0,10.0,16.0;
int i;
printf("\nThe original data is :\n");
for(i=0;i<10;i++)
printf("%6.1f",x[i]);
printf("\n\n");
s=fun(x);
printf("s=%f\n\n",s);
参考答案:[1] sum+=x[i] [2] abs+=(x[i]-avg)*(x[i]-avg) [3] sqrt(abs/10)
解析:
填空1:根据求方差的公式可知,首先要求出10个数的平均值,此处是利用for循环对10个数求累加和。填空2:使用for循环求出每个数与平均值之差的平方和。填空3:通过开方,求出10个数的方差,此处需要注意对库函数sqrt()的调用。