0

好的,我需要创建一个介于 54 和 212 之间的偶数随机数。唯一的问题是它必须在单个语句中完成。我有一个类可以在一个范围内生成随机数,但是就像我说的,我想在一个语句中完成它。我想出了这个,但它不能正常工作。有任何想法吗?

int main()
{

    srand( time(NULL));
    int i;

    i =  (rand() % 106) * 2;

    cout << i;


    return 0;
}
4

1 回答 1

10

生成区间中的任意数字[27, 106]并将其乘以 2。您的问题是您没有下限。

int i = 2 * (27 + rand() % (106 - 27 + 1))  

一般来说,要在[a, b]使用中生成一个随机数:

int i = a + rand() % (b - a + 1)

要了解为什么会这样,请尝试简单的示例,例如[2, 4][3, 7]

于 2010-08-01T18:58:55.540 回答