0

这是不起作用的代码:

Enemy.strength = srand((unsigned)time(NULL)) % 10;

Enemy.strength 是一个整数

我做了一些研究,发现您不能直接使用 rand/srand 定义变量,例如:

a = rand();

我只是想知道为什么以及是否有解决此问题的方法或您建议的替代方法

语言:C...不是C++

4

3 回答 3

4

srand(seed)返回无效。它用于播种随机数生成器。rand()返回一个介于 0 和 RAND_MAX 之间的伪随机整数(在 stdlib.h 中定义)。

因此,要为您的敌人获得随机力量,您应该执行以下操作:

Enemy.strength = rand() % 10; // gives a strength between 0 and 9

您可以调用srand代码中的某个位置,但只需要调用一次。应该在调用 rand() 之前调用它。

于 2012-06-15T05:44:34.300 回答
1

srand() 接受种子作为它的第一个参数。只需在分配 Enemy.strength 之前调用 srand() 并将 rand() 的返回值分配给它。

例子

srand((unsigned)time(NULL)), Enemy.strength = rand() % 10;
于 2012-06-15T05:45:03.627 回答
0

请参阅以下链接以进一步了解
srand
rand

于 2012-06-15T07:20:41.590 回答