如何每次调用函数时取到不同的随机数?

来源:百度知道 编辑:UC知道 时间:2024/06/02 05:19:23
#include<stdlib.h>
#include <time.h>
#include<stdio.h>
double Random(double low,double high)
{
double d;
srand((unsigned)time(NULL));
d=(double)rand()/((double)RAND_MAX+1);
return(low+d*(high-low));
}

main()
{
int i; double n;

for(i=1;i<20;i++)
{
n=Random(1,1000);
printf("%f\n",n);
}
getch();
}

为什么输出的20个数都是一样的?
我把它加在main的for前面了,但是还是没用呀~~~我要做多次取随机的一个概率问题,如果用for延迟的话程序就会很慢了呀~~怎么办呀~~

srand((unsigned)time(NULL));
放在主函数中的for语句前,
srand((unsigned)time(NULL));

在程序的一次运行中,这句话只需要执行一次就够了

因为程序运行的太快
srand((unsigned)time(NULL));该函数里面的参数值始终是一样的
导致随机函数的结果也是一样的
你在srand((unsigned)time(NULL));后面加个时延就好了