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