我有以下程序:
srand((unsigned) time(NULL));
for (int w = 0; w < 10; w++) {
int ran_x;
ran_x = rand() % 255;
cout << "nRandom X = " << ran_x << endl;
//some more lines of code
Sleep(1000);
}
我在 visual c++ 2008 上运行它,当我运行这个程序时,它没有显示任何错误或警告。但是当我运行它时,有时它运行良好,有时它在中间停止并给出此错误“此应用程序已请求运行时以不寻常的方式终止它。 请联系应用程序的支持团队以获取更多信息。”
我该怎么办?是否可以在不使用 Sleep() 函数的情况下完成此操作并仍然获得随机生成的值。因为如果我删除 Sleep(1000),它不会给出任何错误,但它也不会给出随机值
最佳答案
显然你不应该 sleep 。只要您只调用 srand() 一次,代码在我看来就很正常。如果你在一秒钟内多次调用这整个代码块,那么 time(NULL) 将返回相同的第二个值,而 srand() 将以相同的数字开始伪随机数生成,选择相同的一组 10 个后续数字....
关于c++ - 当我在 Visual C++ 中 sleep (1000)时出错,使 srand()工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4930837/