随机数生成使用srand()定义变量

时间:2012-06-15 05:40:22

标签: c random numbers

以下代码不起作用:

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

Enemy.strength是一个int

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

a = rand();

我只是想知道为什么以及是否有办法绕过这个或你建议的替代方案

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

3 个答案:

答案 0 :(得分:4)

srand(seed)返回void。它用于播种随机数发生器。 rand()返回0到RAND_MAX之间的伪随机整数(在stdlib.h中定义)。

因此,为了获得你的敌人的随机力量,你应该做一些事情:

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

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

答案 1 :(得分:1)

srand()接受种子作为其第一个参数。只需在调用Enemy.strength之前调用srand(),然后将rand()的返回值赋予它。

实施例

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

答案 2 :(得分:0)

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