本题希望输入 n (0<n<=100)个整数,求n个整数的均方差。若将 n个数的平均值记为 Avg,则均方差计算公式为:

函数接口定义:

double Avg ( int N, int data[] ); double StdDev( int N, int data[] );

函数Avg计算并返回数组的平均值;函数StdDev计算并返回n个数据的均方差。
其中Ndata都是用户传入的参数。N是要计算的数据个数;data是传入的数组。

裁判测试程序样例:

在这里给出函数被调用进行测试的例子。例如:

#include double Avg ( int N, intdata[] );double StdDev( int N, intdata[] );int main(){int N ,i, data[100];scanf("%d", &N);for(i=0;i<N;i++)scanf("%d",&data[i]);printf("Average = %.4f\n", Avg(N, data));printf("Standard Deviation = %.4f",StdDev(N,data));return 0;}/* 请在这里填写答案 */

输入样例:

106 3 7 1 4 8 2 9 11 5

输出样例:

Average = 5.6000Standard Deviation = 3.0397

pta的一道题目,乍一看是简单的,但是由于没有提供math的头文件,我们只能自己想个办法实现他了,可以供参考

double Avg ( int N, intdata[] ){double sum=0.0;for(int i=0;i<N;i++){sum+=data[i];}return sum/N;}double StdDev( int N, intdata[] ){double square=0.0;for(int i=0;i<N;i++){square+=(data[i]-Avg(N,data))*(data[i]-Avg(N,data));}square/=N;double root=square/3, last, diff=1;if (square  2.25e-308 || diff < -2.25e-308);return root;}