我知道rand()生成一个随机数,而%运算符返回除法的其余部分,但是我不明白的是为什么我们必须在这里使用它,为什么我们不能直接给出一个最大数例如十个
答案 0 :(得分:6)
如果您尝试使用示例,可以理解% 11
和%10 +1
之间的区别:
%11
给出11个可能的答案:0,1,2,3,4,5,6,7,8,9,10
%10 + 1
给出10个可能的答案:1,2,3,4,5,6,7,8,9,10
至于为什么您不能直接告诉rand()
您想要的最大值...那么这不是函数的编码方式。当然,您可以自由编写带有最大值参数的内容。
答案 1 :(得分:1)
rand() % 11
返回0到10之间的随机数; rand() % 10 + 1
返回0到9之间的数字,然后加1,得到1到10之间的数字。
rand()
之所以不能取最大值,部分原因是无法保证rand()
返回的最大数字将是-varies based on implementation(但始终保证为至少32767)。您可以在常量RAND_MAX
中找到确切的值。