rand() / srand() 一直给我零
rand() / srand() keeps giving me zero
我有 2 个生成随机数的函数(第一个函数生成 5 个随机集合,第二个函数只有一个。我在第一个函数中调用了 srand(time(NULL)),这样我就不必在第二个函数中再次调用它。
问题是,对于第二个函数,我一直得到零(第一个函数很好)。这是两个函数(这些是整个代码的片段,太长了,无法全部发布,除非你们需要它让我知道)。
编辑:如果你好奇,我 #included
int Winning_Numbers(int generated[])
{
int amount = 5;
int winning_ticket = generated[amount];
srand(time(NULL));
for(int x = 0; x < amount; x++)
{
generated[x] = (rand() % 69) + 1;
while (generated[x] < 1 || generated[x] > 69)
{
generated[x] = (rand() % 10) + 1;
}
if (x > 0)
{
for(int check_number = 0; check_number < x; check_number++)
{
while (generated[x] == generated[check_number])
{
generated[x] = (rand() % 10) + 1;
}
}
}
}
return winning_ticket;
}
int Powerball(int powerball_generated)
{
powerball_generated = (rand() % 26) + 1;
if (powerball_generated < 1 || powerball_generated > 26)
{
powerball_generated = (rand() % 10) + 1;
}
return powerball_generated;
}
你的代码有很多小问题,但你要问的是,在你的main
函数中,你有
int powerball_number;
Powerball(powerball_number);
在这里,您将 powerball_number
的值作为参数传递给 Powerball()
函数。 但是您要做的是Powerball()
返回一个值并将其分配给powerball_number
变量。 所以你应该写
powerball_number = Powerball();
相反。 同时将 Powerball() 函数更改为仅
int Powerball()
因为它根本不需要争论。
作为旁注,如果你能展示一段小而完整的代码,在你的问题中显示你的问题,那么回答者就会容易得多。 在这里,您问题的关键仅显示在 pastebin 片段中,其链接隐藏在其中一条评论中,我花了一段时间才找到它。
相关文章:
- 为什么我不能将 rand() 与数组的大小一起使用?
- 为什么新的随机库比std::rand()更好
- 为什么rand()的使用被认为是不好的
- 使用 rand() 和 srand() 有问题
- C++ 更深入地了解 rand() 和 srand() 内部
- rand() 和 srand() 给出了奇怪的相似结果.来自 rand() 的返回非常相似
- 如何在使用随机生成器(srand,rand)时检查数字是否不同
- 在具有相同种子的同一程序中对srand()的第二次调用不会为连续的rand()生成相同的值
- 结合rand()和srand()以提高性能
- rand() 即使与 srand( time(NULL) 也不起作用
- rand()在通过函数调用时生成相同的随机数集(即使在使用srand(time(NULL)进行种子设定之后)
- 为什么在使用rand生成随机数之前需要调用srand
- c++rand()和来自boost的RNG生成相同的数字(在发布模式中),即使srand(0)也是如此
- rand() / srand() 一直给我零
- Rand() 是相同的数字生成器,即使我调用了 srand(time(NULL))
- rand() and srand() function opengl visual cpp
- 第一个 rand() 在 srand(time(0) 之后生成相同的值
- srand() 和 rand() 倾向于产生负数
- 'rand()' 的有用性 - 或者谁应该称呼 'srand()'
- rand() and srand() in C++