如何使重新启动此循环,当用户输入 1 时,并在 0 时停止
How to make restart this loop , when user enters 1, and stop when 0
我试图在 while 循环中生成一个数字"6",然后计算这个循环在得到数字 6之前必须运行多少次,然后如果用户输入 1 这个循环将再次运行,再次生成数字 6 并计算尝试次数,但我面临的问题是,当我输入 1 时,我得到的结果与上一个循环相同。
#include <iostream>
#include <cstdlib> // random numbers header file//
#include <ctime> // used to get date and time information
using namespace std;
int main()
{
int counter = 0;
int roll = 0;
int userChoice =1;
int total = 0;
float average = 0;
int programCounter = 0;
srand(time(0));
while (userChoice > 0)
{
while (roll != 6)
{
roll = rand() % 6 + 1; // generate a random number
counter++;
}
total = total + counter;
cout << "Do you want to continue?" << endl;
cout << "Enter positive number to continue" << endl;
cout << "To terminate enter 0" << endl;
cin >> userChoice;
programCounter++;
}
average = total / programCounter;
cout << "Avarage number of rolls before getting 6 is " << average;
}
我的预期结果是让随机数生成器在 while 循环中再次工作并再次生成数字 6,因此稍后我可以使用滚动次数来计算滚动 6 之前的平均滚动次数。
在这里:
while (roll != 6)
在滚动数字之前检查条件。一旦你掷出 6,条件将永远不会false
.
一般来说,最好只在需要时声明变量,这样可以避免代码中的错误(counter
代码中未正确重置
int roll = 0;
int counter = 0;
while (roll != 6)
{
roll = rand() % 6 + 1; // generate a random number
counter++;
}
另请注意,对于简单玩具随机性以外的任何内容rand
应避免。请改用<random>
中提供的设施。
相关文章:
- 如何读取单个字符并在输入两个字符序列时输出? 使用 while 循环和C++
- 在 c++ 中模拟输入并在 JAVA 中读取它?
- 使用 (cin) 用户输入将其粘贴到 std::system 中,并在另一个终端中运行带有输入的命令
- 函数,从问题中获取输入,并在主函数中使用该输入
- 当我们声明 cin 为 int 并从 cin 中获取输入并在 cout 中打印 cin 时会发生什么?
- 如何输入多个字母并在某个字母(q或q)后停止
- 利用输入文件中的数据(字符串和int)并在循环中利用
- 如何使重新启动此循环,当用户输入 1 时,并在 0 时停止
- 如何从用户那里获取方程的输入并在 c++ 中对其进行评估
- 如何读取带有空格的序列并在用户按C++中的"输入"时停止?
- 执行输入检查并在C++中初始化对象
- 输入到字符串流并在单个语句中转换为字符串.可以没有帮助程序类
- 创建一个字符串变量,并在同一行上要求输入
- 是否可以在键盘输入缓冲区中向前看并在MFC/Win32中检测条形码条目
- C 数组,如果循环.如果循环忽略值并在输入值时给出错误的行
- 如何从文件中读取输入并在C++中配对到地图中
- 如何创建一个以键为输入并在C++std:map中查找值的模板函数
- 动态分配的输入,并在C 中输出2D阵列
- 一个简短的程序,该程序采用输入下部的案例字母,它给出了上案字母的上限字母并在按下Enter键时退出
- 读取外部文件并在类似xml的输入中分配变量