我为一个数组创建了一个随机数生成器(介于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]<<", ";
}
有人能看出为什么会这样吗?
答案 0 :(得分:0)
使用rand()
时,它会从给定输入到srand()
生成相同的序列。换句话说,它通常会使用与初始种子值相同的生成数字。这些函数在使用时被认为是不受欢迎的,有些甚至希望将它们标记为deprecated
,以支持现代std
伪随机数生成器库。
要生成随机数,请尝试使用<random>
标题中的库。
您可以在此处找到文档:cppreference::random