题目链接:点击打开链接
设计函数求N个给定整数的均方差。若将N个数A[]的平均值记为Avg,则均方差计算公式为:
输入格式说明:
第1行输入正整数N(<=10000),第2行输入N个整数。
输出格式说明:
输出这N个数的均方差,要求固定精度输出小数点后5位。
样例输入与输出:
序号 | 输入 | 输出 |
1 | 10 6 3 7 1 4 8 2 9 11 5 | 3.03974 |
2 | 1 2 | 0.00000 |
#include<iostream>
#include<cmath>
#include<vector>
using namespace std;
int main()
{
vector<double> v;
int i = 0, n = 0;//n正整数个数
double temp, avg = 0, sum = 0, radicand= 0;//temp临时数字,avg平均数,radicand被开方数
cin >> n;
while (i<n)
{
cin >> temp;
v.push_back(temp);
i++;
}
for (i = 0; i < v.size(); i++)
{
sum = sum + v[i];
}
avg = sum / v.size();//计算平均数
for (i = 0; i < v.size(); i++)
{
radicand = radicand + (v[i] - avg)*(v[i] - avg);//被开方数
}
radicand = radicand / v.size();//除以数字个数
if (radicand> 0)
{
printf("%0.5lf", sqrt(radicand));
}
else
{
cout <<"0.00000";
}
return 0;
}