这是我的代码
#include <iostream> //cout, cin
#include <time.h> // time
#include <stdlib.h> // srand(), rand()
using std::cout; //cout
int main()
{
srand(time(NULL)); //Initializes a random seed
int rand_number = rand() % 1 + 100; //Picks a random number between 1 and 100
cout << rand_number << std::endl;
}
出于某种原因,当我生成随机数时,它一直给我100。虽然我不相信它应该因为我调用srand(time(NULL))来初始化种子。
答案 0 :(得分:3)
如评论中所述,rand() % 1
是荒谬的。除以1的余数为0.然后将其加100。
相反,(rand() % 100) + 1
将为您提供[1,100]范围内的随机数。
<random>
中的设施要好得多,学习它们是个好主意。
std::mt19937 mt((std::random_device()())); //create engine
std::uniform_int_distribution<int> dist(1, 100); //define distribution
dist(mt); //better random number in range [1, 100]