小编kno*_*man的帖子

C++:在main()之外播种随机数生成器

我正在创建一个简单的程序来模拟我班级的抛硬币.(实际上,课程已超过这个学期,我只是在完成其他不需要的项目).它涉及创建和调用一个生成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)

c++ random

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

c++ ×1

random ×1