我正在创建一个随机数生成器,从数组中选取随机数。我习惯使用Java而不必担心srand
种子。如何让我的程序使用系统时间作为种子,因此每次运行我的程序时都会为随机数生成器提供新的种子(时间)。
答案 0 :(得分:0)
像这样:
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
int main()
{
srand(time(0));
/* use it: */
printf("%d\n", rand());
printf("%d\n", rand());
printf("%d\n", rand());
printf("%d\n", rand());
}
time_t time(time_t *tloc);
会返回time_t
(通过其返回值,如果不是tloc
则返回NULL
),这是真实的(内置,整数或浮点)类型。
void srand(unsigned seed);
需要unsigned
。真实类型将以某种方式转换为unsigned
。在这种情况下,只要你在不同的时间点结束不同的unsigned
s,转换的机制就不重要了。