题解 | 牛牛的数学作业
牛牛的数学作业
https://www.nowcoder.com/practice/6f5d239c34a7429cb325a3d836abc342
#include <stdio.h>
int main() {
int t,del,a[100000],b[100000],j;
double sum,max,min,s,aver;
scanf("%d",&t);
for(int i=0;i<t;i++)
{
scanf("%d",&a[i]);
for( j=0;j<a[i];j++)
{
scanf("%d",&b[j]);
}
sum=0,s=0;
max=min=b[0];//这里注意每次走a[]数组要重新初始化
for(int k=0;k<a[i];k++){
if(max<b[k])max=b[k];
if(min>b[k])min=b[k];
sum+=b[k];
}
del=max-min;
aver=sum/a[i];
for(int k=0;k<a[i];k++)
{
s+=((b[k]-aver)*(b[k]-aver))/(a[i]);
}
printf("%d %.3f\n",del,s);
}
return 0;
}//麻辣个菠萝,这里必须用double双精度,不然误差会比较大,搞得我卡了那么久,气死了。
查看12道真题和解析