请编写函数fun,其功能是:计算并输出给定10个数的方差。 S一[((XX—X')2)/10]0.5 其中:S=((XX一X')2)/10 例如,给定的10个数为95.0、89.0、76.0、65.0、88.0、72.0、85.0、

admin2021-02-25  29

问题 请编写函数fun,其功能是:计算并输出给定10个数的方差。
    S一[((XX—X')2)/10]0.5
    其中:S=((XX一X')2)/10
    例如,给定的10个数为95.0、89.0、76.0、65.0、88.0、72.0、85.0、81.0、90.0、56.0,则输出为S=11.730729。
    注意:请勿改动主main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
    试题程序:
    #include<math.h>
    #include<stdio.h>
    double fun(double x[10])
    {
    }
    void main()
    {
    FIILE*wf:
    double s,x[10]=95.0,89.0,76.0,
65.0,88.0,72.0,85.0,81.0,90.0,56.0};
  int 1:
  printf("The original data is:n");
  for(i=0;i<10;i++)
  printf("%6.1f",x);
  printf("n"):
  s=fun(x):
  printf("s=%f\n",s);
/*  *  *  *  *  *  *  *  *  *  *  */
  wf=fopen("out.dat","w"):
  fprintf(wf,"f",s);
  fclose(wf):
/*  *  *  *  *  *  *  *  *  *  *  */

选项

答案double fun(double x[10]) { double x1=0.0,s=0.O: int i: for(i=0;i<10;i++) x1=x1+x[i]; x1=x1/10; /*求10个数的平均值*/ for(i=0;i<10;i++) s=s+(x[i]一x1)*(x[i]一x1); return sqrt(s/10); /*求10个数的方差*/ }

解析 本题考查:平均值的求法;for循环;复合运算符;sqrt函数(求方差)。
这是一道求公式的值的题目,程序中第1个循环用来完成求10个数的总和,接着再用xl=xl/10来求出平均值。第2个循环用来求累加和的值,最后将累加和的平方根返回,注意sqrt函数的应用。
转载请注明原文地址:https://jikaoti.com/ti/jXz0FFFM
0

最新回复(0)