题解 | 牛牛的数学作业
牛牛的数学作业
https://www.nowcoder.com/practice/6f5d239c34a7429cb325a3d836abc342
#include<bits/stdc++.h>
using namespace std;
double pingfangcha(long long ai,double avg){
return (ai-avg)*(ai-avg);//计算与平均值的平方差
}
int main(){
int t;cin>>t;
while(t--){
int n;cin>>n;long long a[n];
long long sum=0;long long minn=1e9,maxn=0;
for(int i=0;i<n;i++){ //输入的时候顺便求总和,找最大最小值
cin>>a[i];
sum+=a[i];
if(a[i]>maxn) maxn=a[i];
if(a[i]<minn) minn=a[i];
}
double avg=(double)(sum*1.0/n);//计算平均值,除法返回浮点数的时候记得在分子乘个1.0,保证精度
double fc=0.0;
for(int j=0;j<n;j++){
fc+=pingfangcha(a[j],avg); //计算平方差总和
}
cout<<maxn-minn<<' '<<fixed<<setprecision(3)<<double(fc*1.0/n)<<'\n';//输出极差和方差(保留3位小数)
}
}
