为什么我的C ++编号不是随机的?
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int randomNumber = rand() % 100;
for (randomNumber = 0; randomNumber < 20; randomNumber++)
{
cout << randomNumber << endl;
}
return 0;
}
//Why are my 20 numbers not random?
答案 0 :(得分:5)
您将randomNumber分配为随机值,然后在for循环中使用数字0到19覆盖它。在你的循环之前,你有一个随机数。
答案 1 :(得分:4)
每次需要随机数时,都需要调用rand()。正如你现在所拥有的那样,你生成一个随机数,然后将其递增并打印20次,这样你就可以获得20个连续数字。
尝试类似
的内容srand(time(NULL)); // Seeding the random number generator
for(int i=0; i<20; ++i)
{
cout << (rand() % 100) << endl;
}
随机数生成器的播种很重要,如果不是这样,每次运行程序时都会生成相同的数字。
答案 2 :(得分:4)
您需要正确播种随机数生成器,然后需要重复调用rand()以获取新的随机数。
例如:
srand(time(NULL));
for (int randomNumber = 0; randomNumber < 20; randomNumber++)
{
cout << (rand() % 100) << endl;
}
答案 3 :(得分:1)
你需要在srand()中使用time()函数作为种子,然后使用rand()。
srand(time(NULL));
顺便说一下,你没有打印rand()结果,请在srand调用之后使用它:
for (int i= 0; i < 20; i++)
{
int randomNumber = rand() % 100;
cout << randomNumber << endl;
}
答案 4 :(得分:0)
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
for (int i = 0; i < 20; i++)
{
int randomnumber = rand() % 100;
cout << randomNumber << endl;
}
return 0;
}
P.S。我希望这是一个笑话:(