我想在我的ff
类中创建一个单独的函数来生成一个随机数并返回该数字。在循环外使用时,该函数似乎工作正常。但是,当我把函数放在一个循环中时,即使我每次调用随机函数,它仍会生成相同的数字!我究竟做错了什么?!
//return a random number
int ff::random_number() const
{
srand((unsigned)time(NULL));
return (rand() % 20 + 1); //in the range of 1 to 20
}
//creates an int list of random size and random elements
int ff::create_random_list()
{
list_length = random_number(); //the list size
list_of_numbers = new int[list_length]; //initilize the list
for (int i = 0; i < list_length; ++i)
list_of_numbers[i] = random_number(); //insert a random number
return 1;
}
答案 0 :(得分:1)
你必须为函数播种一次,而不是每次播放(当你在循环中使用你的函数时会发生这种情况)。
所以这一行:
srand((unsigned)time(NULL));
应该执行一次。