Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么rand()%20+;10继续用c+返回青少年+;?_C++ - Fatal编程技术网

C++ 为什么rand()%20+;10继续用c+返回青少年+;?

C++ 为什么rand()%20+;10继续用c+返回青少年+;?,c++,C++,每当我尝试运行这段代码时,它也会返回10到19之间的数字,但我打算返回20到30之间的数字。我原以为模式是:%min+范围,但它似乎没用,尽管%50+50返回50到99之间的数字,但任何其他最小值都不起作用。为什么? #include<iostream> #include<cstdlib> #include<ctime> using namespace std; int main() { srand(time(0)); for(int i=1

每当我尝试运行这段代码时,它也会返回10到19之间的数字,但我打算返回20到30之间的数字。我原以为模式是:%min+范围,但它似乎没用,尽管%50+50返回50到99之间的数字,但任何其他最小值都不起作用。为什么?

#include<iostream>
#include<cstdlib>
#include<ctime>

using namespace std;
int main()
{
    srand(time(0));
    for(int i=1; i<100; i++)
    {
        cout<<rand()%20+10<<endl;
    }
    return 0;
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
srand(时间(0));

对于(int i=1;i这是因为它是向后的。它是%range+min。模函数返回除法的剩余部分。
因此,假设您执行一个随机数mod 20。结果将在0到19之间。如果我太过向模中添加一个数字'num',我将得到一个范围

0+num到19+num

这是因为它是向后的。它是%range+min。模函数返回除法的剩余部分。
因此,假设您要执行一个随机数mod 20。结果将在0到19之间。如果我在模中添加一个数字'num',我将得到一个范围

0+num到19+num

模运算符
%
在除以一个数字时获取余数。在这种情况下,
rand()%20
返回一个从0到19的值。将10加上该值,得到一个介于10和29之间(含10和29)的值

如果您想要一个介于20和30之间的值,执行
rand()%10
将得到一个从1到9的数字,然后您可以将20相加得到一个从20到29的数字 包括在内


总之:
rand()%10+20
[20,30)
中返回一个数字,模运算符
%
除以一个数字后得到余数。在这种情况下,
rand()%20
返回一个从0到19的值。将10加上该值,得到一个介于10和29之间的值

如果您想要一个介于20和30之间的值,执行
rand()%10
将得到一个从1到9的数字,然后您可以将20相加得到一个从20到29的数字 包括在内

总之:
rand()%10+20
[20,30]
中返回一个数字

\include
#包括
#包括
使用名称空间std;
int main(){
srand(时间(空));
对于(int i=0;i
#包括
#包括
#包括
使用名称空间std;
int main(){
srand(时间(空));

对于(int i=0;iTry
rand()%10+20
这并不能回答您的问题,但请查看您是否担心随机数的分布。请尝试
rand()%10+20
这并不能回答你的问题,但看看你是否担心你的随机数分布。非常感谢。这非常有帮助!非常感谢。这非常有帮助!我投票支持这个答案,因为教授原则比记住范围和最小值更好…我投票支持这个答案,因为它更好o教授原则,而不是记住范围和方向。。。
#include<iostream>
#include<cstdlib>
#include<ctime>

using namespace std;
int main(){
    srand(time(NULL));
    for(int i=0; i<100; i++)
        cout<<rand()%11+20<<endl;
    return 0;
}