我正在创建一个简单的程序来模拟我班级的抛硬币.(实际上,课程已超过这个学期,我只是在完成其他不需要的项目).它涉及创建和调用一个生成1到2之间随机数的函数.最初,我试图在将要使用它的函数中使用随机数生成器(coinToss); 但是,它没有产生随机数.每次运行程序时,它都与我使用过的数字相同
rand()
代替
unsigned seed = time(0);
srand(seed);
rand();
Run Code Online (Sandbox Code Playgroud)
然而,当我在上面移动时
int main()
Run Code Online (Sandbox Code Playgroud)
它工作得很好.
我的问题是1)为什么在调用它的函数中进行设置时它不起作用?(2)如果它们不同时出现在同一个函数中,如何rand()
访问所做的srand()事情?显然,我是初学者,如果我没有正确地提出问题,请原谅我.此外,我的书只是简单地触及rand(),srand()所以我真的知道.
谢谢你的帮助!
相关代码:
第一次尝试不起作用:
int main()
{
//...........
coinToss();
//...........
}
int coinToss()
{
unsigned seed = time(0);
srand(seed);
return 1 + rand() % 2;
}
Run Code Online (Sandbox Code Playgroud)
第二次尝试工作:
int main()
{
unsigned seed = time(0);
srand(seed);
coinToss();
}
int coinToss()
{
return 1 + rand() % 2;
}
Run Code Online (Sandbox Code Playgroud)