填空题
1. 请补充函数proc(),其功能是:计算并输出给定10个数的方差。
例如,给定的10个数为12.0,9.0,26.0,5.0,6.0,31.0,9.0,3.0,8.0,18.0,输出为“s=8.877500”。
注意:部分源程序如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序: #include<stdio.h>
#include<math.h>
double proc(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++)
______;
avg=sum/10;
for(i=0;i<10;i++)
______;
sd=______;
return sd;
}
void main()
{
double s, str[10]={12.0,9.0,26.0,5.0,6.0,31.0,9.0,3.0,8.0,18.0};
int i;
printf("\nThe original data is: \n");
for(i=0;i<10;i++)
printf("%6.1f",str[i]);
printf("\n\n");
s=proc(str);
printf("s=%f\n\n",s);
}
【正确答案】
1、sum+=x[i]
abs+=(x[i]-avg)*(x[i]-avg)
sqrt(abs/10)
【答案解析】 由函数proc()可知,变量sum中存放n个数的和,因此,第一空处填“sum+=x[i]”;然后,求其平方差,因此,第二空处填“abs+=(x[i]-avg)*(x[i]-avg)”;最后,求10个数的方差,因此,第三空处填“sqrt(abs/10)”。