代码实现:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
double sum = 0;
double Da = 0;
double DaSum = 0;
cin >> n;
double* arr = new double[n]();
double* res = new double[n]();
for (int i = 0; i < n; i++)
{
cin >> arr[i];
}
for (int i = 0; i < n; i++)
{
sum += arr[i];
}
double Ave = sum / n;
for (int i = 0; i < n; i++)
{
DaSum += pow(arr[i] - Ave, 2);
}
Da = DaSum / n;
for (int i = 0; i < n; i++)
{
res[i] = (arr[i] - Ave) / sqrt(Da);
}
for (int i = 0; i < n; i++)
{
cout <<fixed<<setprecision(16)<<res[i] << endl;
}
}
总结:
c++中可以使用setprecision()
来控制精度,sqrt()
来开方。