【发布时间】:2016-07-07 01:36:21
【问题描述】:
我尝试使用 min = 4 和 max = 10 的 rand() 函数:
s = rand() % 10 + 4;
有些结果在10以上。这怎么可能?
【问题讨论】:
-
你加4。你不想
rand()%6+4吗? -
我认为 rand() % 6 + 4 有限制 [4,9]。rand() % 7 + 4 怎么样?
我尝试使用 min = 4 和 max = 10 的 rand() 函数:
s = rand() % 10 + 4;
有些结果在10以上。这怎么可能?
【问题讨论】:
rand()%6+4吗?
您寻找的解决方案是rand() % 7 + 4,它将为您提供范围 [4, 10] 的结果。更一般地说,对于给定的 min 和 max 从 [min, max] 获取随机值,您可以选择 rand() % (max - min + 1) + min
【讨论】:
s = rand() % 7 + 4; 是你需要的,如果你想要4 <= s <= 10。
这是因为4, 5, 6, 7, 8, 9, 10 是 7 个数字。 rand() % 7 给你一个从 0 到 6 的数字。加上 4,你会得到想要的随机数。
【讨论】: