关于C++的随机生成数问题

下面是一段代码

 #include <iostream>
#include <cstdio.h>
#include <time.h>
using namespace std;
int main()
{
    time_t ts;
    unsigned int sum = time(&ts);
    srand(sum);
    int data = rand()%100;
    cout << data;
    getchar();
    return 0;
}

为什么每次运行都是打印同一个数
不应该不一样的吗

4个回答

#include
#include
#include
using namespace std;
int main()
{
srand(static_cast(time(NULL))); // 初始化随机种子
int data = rand()%100;
cout << data;
getchar();
return 0;
}

我测试变。
试试这个:

 #include <iostream>
//#include <cstdio.h>
#include <time.h>
using namespace std;
int main()
{
    //time_t ts;
    //unsigned int sum = time(&ts);
    srand( (unsigned)time( NULL ) );
    //srand(sum);
    int data = rand()%100;
    cout << data;
    getchar();
    return 0;
}

看了一下上面两位的代码,可能是机器设置问题,或者本身的c' api参数没有传递正确。

wangyaninglm
shiter 如果楼主解决了问题,可以分享一下
大约 4 年之前 回复

srand( (unsigned)time( NULL ) ); 必须得用时间种子,否则是伪随机的。。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问