平均数和标准差
描述
求n个数的平均数和标准差。给定n个数X1, X2, X3 ...... Xn,数据的平均数为x,标准差定义如下:
输入
第一行一个正整数T,表示有T组测试数据。以下每行是一组数,第一个数为数据个数n(n<200),然后是n个正整数。
输出
对于每组数据输出一行,即平均数和标准差,两个数据均保留3位小数,并且以一个空格隔开。
输入样例 1
2 5 1 1 1 1 1 6 1 2 3 4 6 5
输出样例 1
1.000 0.000 3.500 1.708
提示
HINT 时间限制:200ms 内存限制:64MB
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main() {
int T; // 表示有T组测试数据
cin >> T;
while (T--) {
int n; // 每组数据的个数
cin >> n;
double numbers[n], sum = 0, mean, variance = 0;
// 输入每组数据,并计算总和
for (int i = 0; i < n; i++) {
cin >> numbers[i];
sum += numbers[i];
}
// 计算平均数
mean = sum / n;
// 计算方差
for (int i = 0; i < n; i++) {
variance += (numbers[i] - mean) * (numbers[i] - mean);
}
variance /= n;
// 计算标准差
double stddev = sqrt(variance);
// 输出平均数和标准差,保留3位小数
cout << fixed << setprecision(3) << mean << " " << stddev << endl;
}
return 0;
}