PTA函数与指针6-3求集合数据的均方差
非首发非搬运,本人才疏学浅,如有不足欢迎指正!
非首发非搬运,本人才疏学浅,如有不足欢迎指正!
非首发非搬运,本人才疏学浅,如有不足欢迎指正!
题目作者:孙骏 单位:武汉理工大学
函数接口定义:
double Avg ( int N, int data[] );
double StdDev( int N, int data[] ); 函数Avg计算并返回数组的平均值;函数StdDev计算并返回n个数据的均方差。
其中 N 和 data 都是用户传入的参数。 N 是要计算的数据个数; data 是传入的数组。
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
#include double Avg ( int N, int data[] );
double StdDev( int N, int data[] );int main()
{int N ,i, data[100];scanf("%d", &N);for(i=0;i 输入样例:
10
6 3 7 1 4 8 2 9 11 5 输出样例:
Average = 5.6000
Standard Deviation = 3.0397 代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB
话不多说,上代码。
有注释版:
double Avg ( int N, int data[] )
{
int i;
double sum=data[0]; //这里提前将用户传入数据中的第一个放在了总和sum里,完成变量的初始化。
double a;
for(i=1;i<=N-1;i++) //此循环完成了第二个到最后一个数据的遍历,将这些数据累加到了总和sum中。
{sum+=data[i];
}
a=sum/N;
return a; //返回平均值。
}
double StdDev( int N, int data[] )
{
int i;
double sum=data[0];
double a;
double b;
double c;
for(i=1;i<=N-1;i++)
{sum+=data[i];
}
a=sum/N; //到这里为止是在引用函数Avg的内容,求出用户输入数据的平均值a。
sum=0;
for(i=0;i<=N-1;i++) //此循环完成了数据的遍历,并且按照题目要求将每个数据进行规定运算,将运算后的结果累加到了sum中。(最终的运算结果为根号下的部分除去“/N”,所以在此循环之后还要进行两步运算)
{b=(data[i]-a)*(data[i]-a);sum+=b;
}
c=sum/N;
b=sqrt(c);
return b; //返回集合数据的均方差。
}/* CSDN社区 天涯远行客2004原创 */ 无注释版(做PTA请复制这块代码):
double Avg ( int N, int data[] )
{
int i;
double sum=data[0];
double a;
for(i=1;i<=N-1;i++)
{sum+=data[i];
}
a=sum/N;
return a;
}
double StdDev( int N, int data[] )
{
int i;
double sum=data[0];
double a;
double b;
double c;
for(i=1;i<=N-1;i++)
{sum+=data[i];
}
a=sum/N;
sum=0;
for(i=0;i<=N-1;i++)
{b=(data[i]-a)*(data[i]-a);sum+=b;
}
c=sum/N;
b=sqrt(c);
return b;
} 原创不易,转载请标明出处,如有错误欢迎指正!
原创不易,转载请标明出处,如有错误欢迎指正!
原创不易,转载请标明出处,如有错误欢迎指正!
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
