c++ - 在 C++ 中使用随机生成的数字进行计算

标签 c++

所以我应该生成 100 个介于 1-100 之间的随机数。其中 20 个应该在 1-100 范围内生成,另外 80 个应该在 40-70 范围内生成。我还应该创建函数来计算数字的平均值和标准差。

请记住,这应该在不使用数组的情况下完成。

我的问题是我不确定如何让我的程序记住正在生成的数字,以便我可以将它们用于计算功能。我现在真正能做的就是通过使用循环将它们全部打印出来。我不知道如何使生成的数字成为可用于计算的值。

任何提示,我是否以正确的方式处理这个问题?


#include <iostream>
#include <cstdlib>
#include <cmath>
#include <time.h>
using namespace std;


int getOutlierScore();
int getNormalScore();


int main()
{
    srand (time(NULL));
    cout << "The scores are as follows:" <<endl;

    for (int i = 1; i <= 20; i++)
    {
        cout << i << ". " << getOutlierScore() <<endl;
    }

    for (int i = 21; i <= 100; i++)
    {
        cout << i << ". " << getNormalScore() <<endl;
    }

    return 0;
}

int getOutlierScore()
{
    int outlier;
    outlier = rand() % 100 + 1;
    return outlier;
}

int getNormalScore()
{
    int max = 70, min = 40;
    int normalScore;
    normalScore = rand() % (max - min) + min;
    return normalScore;
}

最佳答案

好吧,我不想发布你家庭作业的答案。我只是指导您如何实现这一目标。

到目前为止你做得很好。首先,要计算标准偏差,您需要先找到均值。这意味着您将不得不计算平均值。

现在,您不需要数组来计算一组数字的平均值。跟踪变量中这些随机值的总和,比如 sum

您必须将函数 getOutlierScore()getNormalScore() 中的所有值添加到此变量中。

所以在循环结束时你会得到总和,条件是“其中20个应该在1-100范围内生成,另外80个应该在1-100范围内40-70 的范围。”

现在您要做的就是找到平均值,然后找到标准差。 如果你被卡住了,请告诉我。 (练习会帮助你学习,祝你好运!!)

编辑: 正如@Doug 指出的那样,您还需要平方和。所以在另一个变量中跟踪它。

关于c++ - 在 C++ 中使用随机生成的数字进行计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36123838/

相关文章:

C++ 子类的类型是否与它们自己及其父类相同?

c++ - "single allocation"对 boost::make_shared 意味着什么

c++ - 是否有复制 visual studio C++ 自动缩进样式的命令行工具?

c++ - 使用模板函数作为模板参数

android - For IOS 中的 C++ 网络库

c++ - 从 int 到 typedef 枚举数据的无效转换

c++ - 使用空 std::vector 的 begin() 和 end() 是否定义良好?

c++ - 我可以创建一个可以采用任何枚举的模板(非类型)参数类吗? C++11

c++ - 不明确的 string::operator= 调用隐式转换为 int 和 string 的类型

c++ - undefined symbol "vtable for ..."和 "typeinfo for..."?