创建随机浮点数不是从零开始

时间:2014-12-11 08:18:52

标签: c

如何在C范围内(而不是从0)生成随机浮点数?

我尝试了此链接中提到的代码:How to generate a random number from within a range。但是当我传入最大值时,这个总是返回“1” - 最小+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