ISO IEC 9899 2011 (C11)标准中未规定 RAND_MAX 的具体数值。但该标准规定了RAND_MAX 的值应至少为32767。编程的时候,不应该对 RAND_MAX 的具体数值做任何假设。
rand 返回 0~RAND_MAX 之间的随机数。要得到一个 0~1.0 之间的随机浮点数,一种简单的做法是:
/* C语言 */
(double)rand() / RAND_MAX// C++
static_cast(rand()) / RAND_MAX
下面是一个符合 C99 标准的完整 C 语言实例: