这个问题在这里已有答案:
我为一个数组创建了一个随机数生成器(介于100和1之间)但每次运行它都会输出1到100之间相同的10个数字。
for (int x=0; x < 10; x++) {
arr[x]=rand() % 100 + 1;
循环运行10次,因为数组包含10个整数。每次我跑这个,它输出:42,68,35,1,70,25,79,59,63,65。
它从这行代码输出
for (int z=0; z<10;z++) {
cout << arr[z]<<", ";
}
谁能明白为什么会这样?
当使用rand()
时,它将从给定输入到srand()
生成相同的序列。换句话说,它通常会使用与初始种子值相同的生成数字。这些函数在使用时被认为是不受欢迎的,有些甚至希望它们被标记为deprecated
,而不是现代的std
伪随机数生成器库。
要生成随机数,请尝试使用<random>
标头中的库。
你可以在这里找到文件:cppreference::random