2012-06-15 43 views
0

这里是不起作用的代码:随机数生成使用srand()函数定义一个变量

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

Enemy.strength是一个int

我做了一些研究,我发现,你可以”牛逼直接定义一个变量兰特/函数srand 如:

a = rand(); 

我只是想知道为什么,如果有解决这个或者你认为

有什么其他办法

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

+1

你搜索'srand'下面的链接?有很多关于如何使用它的例子,以及它如何与'rand'不同。在张贴这里之前,请展示一些努力。 –

回答

4

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

因此要得到你的敌人随机实力,你应该这样做:

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

你可以一个电话到srand在你的代码的某个地方,但只需要调用一次。它应该在任何对rand()的调用之前调用。

+0

感谢您使用逗号运算符提供的帮助 – Bevilacqua

1

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

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

?做什么的? –

+0

也许[IOCCC](http://www.ioccc.org)? – Lundin

+0

没有什么特别的理由,除了在rand()之前写入srand()的位置的快速而草率的例子之外,我当然不会试图通过它来赢得任何比赛。 –