所以我应该生成 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/