这个问题在这里已有答案:
我有一个类函数int ComputerClass::getGuess()
,每次调用它都应该产生一个随机数。在我的main函数中,我创建了类ComputerClass Computer1,Computer2
的2个函数并调用了类函数,但是它为每个调用返回相同的数字:
cout << Computer1.getGuess()<<endl;
cout << Computer2.getGuess()<<endl;
下面是类成员函数
int ComputerClass::getGuess()
{
//Generate randomn number
srand(time(NULL));
generatednumber = rand() % 100 + 1;
//return computers randomly generated #
cout <<"--(Computer)Please enter a guess between 1-100: "<<
generatednumber<<endl;
return generatednumber;
}
我假设我的问题是种子值,但是我不知道如何设置它以便每次调用它时使数字随机。
你应该只为整个程序调用一次srand。当您非常快速地调用时间(NULL)两次时,它通常会返回相同的值,因为时间比CPU慢得多。
调用srand后,每次对rand的后续调用都将返回不同的值。