题解 | 牛牛的数学作业

牛牛的数学作业

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

全部评论

相关推荐

头像
01-29 18:11
海南大学 Java
奔跑的suechil...:单从项目看这个简历不怕被问穿吗 带微服务的项目需要相当多的项目理解和经验诶
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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