Random for循环中的if语句(随机数生成器) #包括 #包括 使用名称空间std; int main() { 无标记种子; 种子; srand(种子); 整数; 数字=兰德(); 整数计数; for(count=1;count=1&&number

Random for循环中的if语句(随机数生成器) #包括 #包括 使用名称空间std; int main() { 无标记种子; 种子; srand(种子); 整数; 数字=兰德(); 整数计数; for(count=1;count=1&&number,random,numbers,generator,Random,Numbers,Generator,在初始代码中,如果值超出了所需的范围(1-100),它仍会增加for循环中的count,但不会打印任何内容,因为该数字超出了范围。您需要--count;,以便从本质上告诉for循环“数字超出范围,因此不要计算该迭代次数,然后重试。"好吧,我现在有点明白了。但为什么程序总是打印一个数字或不打印数字?根据您的说法,它有时应该打印2、5、1、40个数字等等……或者不打印?谢谢您的回答,我现在明白了!不幸的是,我无法投票,因为我的声誉低于15。您可能的副本必须在中放入--count>else因为当随机数

在初始代码中,如果值超出了所需的范围(1-100),它仍会增加for循环中的count,但不会打印任何内容,因为该数字超出了范围。您需要--count;,以便从本质上告诉for循环“数字超出范围,因此不要计算该迭代次数,然后重试。"

好吧,我现在有点明白了。但为什么程序总是打印一个数字或不打印数字?根据您的说法,它有时应该打印2、5、1、40个数字等等……或者不打印?谢谢您的回答,我现在明白了!不幸的是,我无法投票,因为我的声誉低于15。您可能的副本必须在
中放入
--count
>else
因为当随机数不在[1100]范围内时,您不想增加
计数
。因此,在
else
块中,您执行
--count
并且在循环迭代中执行
++count
时,方程变为
((count-1)+1)=count
因此当数字不在[1100]范围内时,
count
不会改变谢谢你的回答我现在知道了!不幸的是,我无法投票,因为我的声誉低于15。
#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
unsigned seed;
cout << "Input a whole number between 0 and 65535 to\n initialize the random number generator: ";
cin >> seed;
srand(seed);

int number;
number = rand();

int count;
for (count = 1; count <= 20; count++)
{

    if (number >= 1 && number <= 100)
    {
        cout << number << endl;
        number = rand();
    }
    else
    {
        number = rand();
        --count;
    }

}
return 0;
}