【发布时间】:2016-03-10 14:52:42
【问题描述】:
for (x = 1; x < 10; x++)
{
(armoPtr + x) ->def = rand() % b + a;
if ((armoPtr + x) -> def > b)
(armoPtr + x) -> def = b;
srand(time(NULL));
(armoPtr + x) -> hp = rand() % 5 + 1;
srand(time(NULL));
(armoPtr + x) -> valOItem = rand() % (lvlpnts + 1) + max(lvlpnts);
if ((armoPtr + x) -> valOItem > (lvlpnts + 1))
(armoPtr + x) -> valOItem = (lvlpnts + 1);
(armoPtr + x) -> valOItem *= 10;
srand(time(NULL));
}
如果这是一个非常平庸的错误,请原谅我,但是这个循环不应该在每次循环时都有新的随机数吗?我还在 Com Sci 第一年的第二个学期。对不起,如果我很烂。哈哈哈
【问题讨论】:
-
time(NULL)返回的值在循环迭代之间不会改变,因此您每次都将伪随机数生成器重置为相同的起始值。跨度>