【发布时间】:2015-04-20 05:01:08
【问题描述】:
我正在编写一个代码,它将返回一个介于 5 到 20 之间的随机数,我遇到了一个问题,它总是会再次产生相同的数字,而我似乎无法解决它。
#include <stdlib.h>
#include <stdio.h>
int random = 0;
int randomnumbergen() {
srand(12345);
random = rand() % (20 - 15) + 15;
return random;
}
【问题讨论】:
-
这并不是一个奇迹——你一直在为随机数生成器播种相同的值!
-
一旦你修复了
srand(),我想你仍然会遇到random = rand() % (20 - 15) + 15;的问题。 -
@FoggyDay:这取决于错字是在代码中还是在范围的声明中。 IIRC,您需要一个模数范围内的
+1来获得 6 个数字 15..20(或 16 个来自 5..20 的数字)。
标签: c