C rand()有问题

问题描述 投票:0回答:2

我是C的新手。我刚遇到rand()函数。该书指出,使用rand()返回0到32767之间的随机数。它还指出,您可以使用%(模运算符)来缩小随机数的范围。这是一个示例:以下表达式在变量dice中放置一个1到6之间的随机数

dice = (rand() % 6) + 1;

我想知道为什么您不能使用

dice = (rand() % 7); 

会不会做同样的事情?

c
2个回答
4
投票
实际上,模运算符返回整数除法的余数。因此,范围是从0n - 1。因此,如果您想要1-6的随机数,则需要执行(rand() % 6) + 1,因为rand() % 6会为您提供0-5范围内的值。只需执行rand() % 7即可获得0-6的范围,增加了上限,而不是下限。

2
投票
另一方面,rand() % 7是介于0-6之间的数字。
© www.soinside.com 2019 - 2024. All rights reserved.