c++ - 在获取用户输入时,我将输入的最小和最大数字设置为他们自己的变量,但无论出于何种原因,它们开始 = 为 0
问题描述
在获取用户输入时,我将输入的最小和最大数字设置到他们自己的变量中,但无论出于何种原因,它们开始 = 为 0。
代码:
#include <iostream>
using namespace std;
int main()
{
int num;
string var;
int sum = 0;
int i;
int largest = INT_MIN;
int smallest = INT_MAX;
int j = 0;
int prime = 0;
do {
cout << "Please enter a series of numbers, press (Q or q) to process: ";
cin >> num;
if (cin.fail())
{
cin.clear();
cin >> var;
if (var != "Q" && var != "q")
{
cout << "Invalid input, try again" << endl;
}
}
if (num > largest)
{
largest = num;
}
if (num < smallest)
{
smallest = num;
}
if (num == 0 || num == 1)
{
prime = prime;
}
else
{
for (i = 2; i <= num / 2; i++)
{
if (num % i == 0)
{
j = 1;
break;
}
}
if (j == 0)
{
prime++;
}
}
sum += num;
cout << "The corresponding element for the cumulative total sequence is: " << sum << endl;
cin.ignore(sum, '\n');
} while (var != "Q" && var != "q");
cout << endl;
cout << "Largest number: " << largest << endl;
cout << "Smallest number: " << smallest << endl;
cout << "How many prime numbers? " << prime << endl;
cout << "Have a great day!" << endl;
}
这是正在运行的程序的示例。 程序示例
这里最小的数字应该是 8,问题是它从 0 开始。最大的数字也是一样的。 程序示例#2
解决方案
即使用户输入 q 或 Q,您的循环仍在测试“num”变量,在将修复它else break;
之后添加 else 语句。if (var != "Q" && var != "q")
对于未来,请始终记住,当“if”函数失败时,它将继续执行下一行,如果您需要不执行,则需要跳出循环或更改代码结构.
推荐阅读
- javascript - 在反应js中添加子函数
- reactjs - Jasmine 测试规范未能获取 React 导入语句
- android - 线性布局切割材料卡阴影
- javascript - 尝试为 create-react-app 设置 WebStorm IDE JavaScript 调试器时出现 404 错误
- python - 如何为dict的dict添加python docstring
- python - 访问字典中包含的特定数据框列的最佳方法是什么?
- android - 当滚动太远时,如何防止 RecyclerView 为每个中间子级运行 onBindViewHolder
- loops - 从表单中获取值并将其添加到另一个工作表问题
- r - 通过 df 逐行迭代以使用 R 中的 str_locate_all 获取 ID 号
- r - 如何将参数从闪亮的 ui 对象传递到服务器渲染对象