2012-06-15 115 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()的位置的快速而草率的例子之外,我當然不會試圖通過它來贏得任何比賽。 –