题解 | 牛牛的数学作业

牛牛的数学作业

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;
}

全部评论

相关推荐

点赞 评论 收藏
分享
勇敢的懒羊羊觉得你很...:人要允许自己失败,允许自己不优秀,成不了惊天动地的大人物不代表我们的人生没有意义
工作压力大,你会干什么?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务