c ++ srand()无效

时间:2016-05-09 10:20:00

标签: c++ srand

我不明白大家在这里说的是什么:srand(time(NULL)) doesn't change seed value quick enough  我应该使用srand()每次生成一个不同的随机数,但我一直得到相同的数字,任何建议?

#include <iostream>
 #include <time.h>
using namespace std;

int main()
{
    int n, num;
    cout<<"Enter the number:\n";
    cout<<"n= "<<n<<endl;
    cin>>num;
     srand(time(NULL));
    n= rand()%10+1;

    if(n==num)
        cout<<"win\n";
    else
        cout<<"lose\n";


    return 0;
}

2 个答案:

答案 0 :(得分:2)

autoclosure

以下是在展示undefined behavior的初始化之前打印cout<<"n= "<<n<<endl;

<强>解决方案
n

之后打印

答案 1 :(得分:0)

srand(int)抖动数字取决于参数传递的值。如果给出相同的数字,则随机数将相同。 在您的网址中,人们拨打srand(time(NULL))两次,但计算机的时钟没有时间在两次通话之间进行更改。所以随机数是一样的。