我有这些代码片段:
char letrarand()
{
time_t t;
srand(time(NULL));
char randomletter = 'A' + (rand() % 26);
return randomletter;
}
char criameses()
{
int contador = 0;
for (contador = 0; contador < 31;++ contador)
{
*(pjaneiro + contador) = letrarand();
}
其中pjaneiro是指向31个元素数组的指针。理论上这可以工作,并会为数组的每个元素分配一个随机字母,但事实证明它总是分配相同的字母。
我最好猜测为什么会发生这种情况是time()函数只精确到一秒钟,因此随机数生成器的种子始终是相同的,因为我的计算机在不到一秒的时间内执行代码。有没有办法让我更好地为随机数生成器播种?