【发布时间】:2013-08-09 16:01:16
【问题描述】:
我有一个简单的问题,但不知道如何解决这个问题!我正在尝试创建一个数字生成器,但我只希望它从 1-6 中选择一个随机数。没有零!这个问题被标记为 dup 但不应该是因为这是 C++ 而不是 C:
srand(static_cast<unsigned int>(time(0)));
int dice = rand()%6;
【问题讨论】:
-
只需将 1 添加到
dice。 -
使用
rand()/RAND_MAX * (max_n - min_n) + min_n; -
@GrijeshChauhan -
rand()/RAND_MAX几乎一直为 0;两个表达式都有int类型,rand()返回的值永远不会大于RAND_MAX的值。使用rand()/double(RAND_MAX),或您最喜欢的变体。 -
将 C++ 问题作为 C 问题的副本来结束有点愚蠢,因为许多 C++ 解决方案不是有效的 C 解决方案,至少找到一个带有正确标签的副本。