【发布时间】:2019-11-08 14:23:12
【问题描述】:
我是 C 新手。我刚刚遇到了 rand() 函数。该书指出,使用 rand() 返回一个从 0 到 32767 的随机数。它还指出,您可以使用 % (模运算符)来缩小随机数的范围。 下面是一个例子:下面的表达式将一个从 1 到 6 的随机数放入变量 dice
dice = (rand() % 6) + 1;
我想知道为什么你不能使用
dice = (rand() % 7);
它不会做同样的事情吗?
【问题讨论】:
-
算一下:x / 6 + 1 与 x / 7 不同!
-
您想要 0-6 范围还是 1-6 范围?
-
从 0 到 32767 -> 从 0 到至少 32767。
-
这本书说使用 rand() 返回一个从 0 到 32767 的随机数。 你的书错了。 (我想知道它还教了你多少其他错误事实?)在 32 位机器上,它通常会返回更大范围内的数字。有一个常量
RAND_MAX,它告诉您系统上rand()的范围。 -
RAND_MAX的值(rand()返回的最大值)不一定是 32767。不能更小,但通常要大得多。
标签: c