我正在使用 rand() 在 C 中制作一个简单的示例,但尽管我使用 srand(),但该函数始终返回相同的数字。
这是代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int generate(int min, int max)
{
srand(time(NULL));
return rand() % (max - min + 1) + min;
}
int main()
{
int i;
for (i = 0; i < 10; i++)
{
printf("Number random %d = %d\n", i, generate(1, 100));
}
return 0;
}
执行 :
随机数 0 = 40 随机数 1 = 40 随机数 2 = 40 数
随机 3 = 40 数量随机 4 = 40 数量随机 5 = 40 数量随机
6 = 40 数量随机 7 = 40 数量随机 8 = 40 数量随机 9 = 40
这是因为您每次都重新播种,并且由于您的程序可能运行得非常快,因此每次调用的种子值 (time()) 都是相同的,因为它的最小增量是 1 秒。
尝试移动srand()
into main()
相反并调用一次
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)