#include <iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int main() {
int T;
int n;
cin >> T;
while(T--){
cin >> n;
int X;//用于存放读取的数
int minVal,maxVal;
long long sum = 0, sum2 = 0;
for(int j =0;j<n;j++){
cin >> X;
if(j==0){
minVal = maxVal = X;
}
else{
minVal =std:: min(minVal,X);
maxVal =std:: max(maxVal,X);
}
sum+=X;
sum2+=1LL*X*X;
}
//算极差(最大值减最小值) 方差
//极值
//输出极值
cout << maxVal-minVal <<" ";
//计算方差
double mean = (double)sum / n;
double variance = (double)sum2 / n - mean * mean; // 利用公式计算
printf("%.3f\n",variance);
}
}
优化了一下 不用数组接收
方差=平方和/n−(平均值)2

京公网安备 11010502036488号