输入一组数,在输入0时停止,计算0之前的所有数的平均值和方差
时间: 2024-04-13 15:29:10 浏览: 100
你可以使用以下代码来计算输入一组数,在输入0之前的所有数的平均值和方差:
```cpp
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
int main() {
vector<int> numbers;
int num;
double sum = 0.0;
double mean = 0.0;
double variance = 0.0;
// 输入一组数,直到输入0为止
cout << "请输入一组数(以0结束): ";
while (cin >> num && num != 0) {
numbers.push_back(num);
sum += num;
}
// 计算平均值
mean = sum / numbers.size();
// 计算方差
for (int i = 0; i < numbers.size(); i++) {
variance += pow(numbers[i] - mean, 2);
}
variance /= numbers.size();
cout << "平均值: " << mean << endl;
cout << "方差: " << variance << endl;
return 0;
}
```
在上述代码中,我们首先定义了一个整数向量`numbers`来存储输入的数。然后,我们使用一个循环来获取用户输入的一组数,直到输入为0为止。在读取每个非零数时,我们将其添加到向量中,并计算总和。
接下来,我们计算平均值,通过将总和除以向量中元素的个数进行计算。
然后,我们计算方差。方差是每个数与平均值之差的平方的平均值。我们遍历向量中的每个元素,计算每个元素与平均值之差的平方,并将其累加到方差中。最后,我们将方差除以向量中元素的个数。
最后,我们将计算得到的平均值和方差打印出来。
请注意,上述代码假设输入的数为整数。如果你需要处理浮点数,请相应地修改数据类型。此外,该代码没有对输入错误进行异常处理,请自行添加适当的错误处理逻辑。
阅读全文