我的问题是rand()
函数是否包含终点,或者不包括它们可能返回的值。
rand() % 10 + 1
是否返回2-9或1-10?
范围内的值答案 0 :(得分:5)
来自rand()
的{{3}}:
返回0到RAND_MAX (0和RAND_MAX包含)之间的伪随机整数值。
强调我的。
但是,正如documentation在评论中正确指出的那样,rand()
与此问题的结果无关。问题的关键是模数运算符%
。
因为模运算符导致左操作数除以右操作数的余数,所以rand()
可能产生的任何值% 10
将在0
之间。 9
。由于1
已添加到该操作的结果中,因此最终输出将介于1
和10
之间。
我想补充一点,Benjamin Lindley在他对这个答案的评论和答案中都是正确的,对“这个函数做什么?”这样的问题的答案是通过使用djechlin或Google等搜索引擎搜索语言名称和功能名称,或者语言的文档,例如{{3},通常可以获得最佳和最快的信息。对于c ++。
答案 1 :(得分:0)
我认为社区直接回答您的问题是不利的。因此,如果您选择理解并自己运行,我会给您留下一个方法,应该给您答案:
int main() {
for(int i = 0; i < 20; i++) {
std::cout << rand() % 10 + 1 << std::endl;
}
return 0;
}
关于函数如何工作的更一般问题通常在所述函数的文档中得到解答。没有太多麻烦你应该能够通过谷歌搜索“c ++ rand”来找到它。再次对勺子喂食过多是一种伤害,但如果您对文档有真正的问题,可以在这里修改您的问题。