题解 | 牛牛的数学作业
牛牛的数学作业
https://www.nowcoder.com/practice/6f5d239c34a7429cb325a3d836abc342
#include <limits.h>
#include <stdio.h>
int main() {
int T;
scanf("%d",&T);
for(int i=1;i<=T;i++){
int n;
scanf("%d ",&n);
long long sum = 0; // 存储数字总和
long long sum_squares = 0; // 存储数字平方和
int max_val = INT_MIN; // 初始化最大值为最小整数
int min_val = INT_MAX;
for(int j=1;j<=n;j++){
int x;
scanf("%d",&x);
if (x > max_val) max_val = x;
if (x < min_val) min_val = x;//用这个代码逻辑求最大最小并输出极差
sum+=x;
sum_squares+=(long long)x*x;
}
int range=max_val-min_val;
double avg=(double)sum/n;
double fangcha=(double)sum_squares/n-avg*avg;//这里用了数学推导,把公式简化为平方和除以n减去均值的平方的形式来输出方差;
printf("%d %.3f\n",range,fangcha);
}
return 0;
}
查看25道真题和解析