我写了这段代码来生成一个随机数序列,但是这个程序给了我相同的随机数:
int _tmain(int argc, _TCHAR* argv[])
{
for (int i=0;i<100;i++){
srand((unsigned)time(0));
cout<<"\t"<<rand();
}
getchar();
return 0;
}
输出是一个数字相等的序列,我可以解决这个问题。
答案 0 :(得分:1)
在使用rand()之前,只在循环外调用srand()
一次。尝试:
int _tmain(int argc, _TCHAR* argv[])
{
srand((unsigned)time(0)); // Only call once.
for (int i=0;i<100;i++)
{
cout<<"\t"<<rand();
}
getchar();
return 0;
}