C++编程练习与文件操作详解

236、编写一个包含两个函数 calcavg() variance() 的程序。 calcavg() 函数应计算并返回存储在名为 testvals 的数组中的值的平均值。该数组应在 main() 函数中声明,且包含值89、95、72、83、99、54、86、75、92、73、79、75、82和73。 variance() 函数应计算并返回数据的方差。方差的计算方法是:用 testvals 中的每个值减去平均值,将得到的值平方,求和后再除以 testvals 中的元素数量。在 main() 函数中使用 cout 语句显示 calcavg() variance() 返回的值。

以下是实现该功能的C++代码:

#include <iostream>
using namespace std;

// 计算平均值的函数
double calcavg(double testvals[], int size) {
    double sum = 0;
    for (int i = 0; i < size; i++) {
        sum += testvals[i];
    }
    return sum / size;
}

// 计算方差的函数
double variance(double testvals[], int size) {
    double avg = calcavg(testvals, size);
    double sumOfSquaredDifferences = 0;
    for (int i = 0; i < size; i++) {
        double difference = testvals[i] - avg;
        sumOfSquaredDifferences += difference * difference;
    }
    return sumOfSquaredDifferences / size;
}

int main() {
    double testvals[] = {89, 95, 72, 83, 99, 54, 86, 75, 92, 73, 79, 75, 82, 73};
    int size = sizeof(testvals) / sizeof(testvals[0]);
    double average = calcavg(testvals, size);
    double var = variance(testvals, size);
    cout << "平均值: " << average << endl;
    cout << "方差: " << var << endl;
    return 0;
}

这段代码定义了 calcavg() variance() 两个函数。 calcavg() 函数计算数组元素的平均值, variance() 函数利用 calcavg() 计算的平均值来计算方差。在 main() 函数中初始化数组并调用这两个函数,最后输出计算结果。

237、确定以下15个成绩列表的平均值和标准差:68、72、78、69、85、98、95、75、77、82、84、91、89、65和74。

计算平均值和标准差

首先计算 平均值 ,平均值等于所有成绩之和除以成绩的数量。即:

$$
(68 + 72 + 78 + 69 + 85 + 98 + 95 + 75 + 77 + 82 + 84 + 91 + 89 + 65 + 74) / 15 = 1230 / 15 = 82
$$

然后计算 标准差 ,先求每个成绩与平均值的偏差,再将偏差平方,接着求这些平方偏差的和,最后除以偏差的数量并取平方根。

平方偏差和为:

$$
(68 - 82)^2 + (72 - 82)^2 + (78 - 82)^2 + (69 - 82)^2 + (85 - 82)^2 + (98 - 82)^2 + (95 - 82)^2 + (75 - 82)^2 + (77 - 82)^2 + (82 - 82)^2 + (84 - 82)^2 + (91 - 82)^2 + (89 - 82)^2 + (65 - 82)^2 + (74 - 82)^2
$$

$$
= 196 + 100 + 16 + 169 + 9 + 256 + 169 + 49 + 25 + 0 + 4 + 81 + 49 + 289 + 64 = 1486
$$

标准差为:

$$
\sqrt{1486 / 15} ≈ \sqrt{99.07} ≈ 9.95
$$

结果

  • 平均值 :82
  • 标准差 :约 9.95

238、编写一个函数,将一个三位数的零件编号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值