我有两个生成随机数的函数(第一个函数生成5个随机集,第二个函数只生成一个。我在第一个函数中调用srand(time(NULL)),这样做我没有必要调用它再次在第二个功能。
问题是,对于第二个函数,我保持零(第一个函数很好)。以下是两个函数(这些是整个代码的片段,发布时间太长,除非你们需要它让我知道)。
编辑:我#included< ctime>如果你很好奇,那就不是问题了。
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;
}
答案 0 :(得分:1)
您的代码存在许多小问题,但您要问的问题是您的main
函数
int powerball_number;
Powerball(powerball_number);
在这里,您将powerball_number
的值作为参数传递给Powerball()
函数。但您要做的是让Powerball()
返回一个值并将其分配给powerball_number
变量。所以你应该写
powerball_number = Powerball();
代替。同时将Powerball()函数更改为
int Powerball()
因为它根本不需要参数。
作为旁注,如果您可以在问题中显示一小段但完整的代码,那么答案者就会容易得多。在这里,您的问题的关键只显示在pastebin片段中,其中一个注释中隐藏了链接,并且我花了一段时间才找到它。