如何在C范围内(而不是从0)生成随机浮点数?
我尝试了此链接中提到的代码:How to generate a random number from within a range。但是当我传入最大值时,这个总是返回“1” - 最小+1。
感谢。
答案 0 :(得分:3)
试试这个:
#include <time.h>
#include <stdlib.h>
float GetRand(float min,float max)
{
static int firstTime = 1;
if (firstTime == 1)
{
firstTime = 0;
srand((unsigned int)time(NULL));
}
return (max-min)*rand()/RAND_MAX+min;
}
请注意,此功能不是线程安全的,因此您可能需要事先致电srand
。