本题链接:CSP 202206-1 归一化处理
本博客给出本题截图:
C++
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> using namespace std; const int N = 1010; double a[N]; // 直接定义为double类型不用进行后续的强制转换 int main() { int n; double sum = 0; cin >> n; for (int i = 0; i < n; i ++ ) cin >> a[i], sum += a[i]; double ave = sum / n, d = 0; for (int i = 0; i < n; i ++ ) d += pow(a[i] - ave, 2); d /= n; for (int i = 0; i < n; i ++ ) printf("%lf\n", (a[i] - ave) / sqrt(d)); return 0; }
总结
会调用几个数学函数即可,题目让做什么做什么就可以了,题目中a数组虽然存的是整数但是定义为浮点数也没什么大不了的,可以省几步的强制转换,再一个就是误差不超过10-4就可以了,所以没必要输出小数点后那么多位,题干在最后也提示了,直接 printf
即可。