我正在用rand()函数在C中做一个简单的例子,但函数总是返回相同的数字,尽管我使用的是srand()。rand()返回相同数
这是代码:
#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
你不应该强制每次使用新的种子。你应该在应用程序启动时使用''srand'',而不是每次都使用。顺便说一句,你应该考虑使用''''而不是老派的''rand''。 –
尝试初始化您的主要功能开始的一次随机数 – flotto
谢谢,它的工作原理! –