以下代码不起作用:
Enemy.strength = srand((unsigned)time(NULL)) % 10;
Enemy.strength是一个int
我做了一些研究,发现你不能用rand / srand直接定义变量 如:
a = rand();
我只是想知道为什么以及是否有办法绕过这个或你建议的替代方案
语言:C ...不是C ++
答案 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)