打印输入的最小数字(不包括任何负数)
Printing the smallest number inputed (Excluding any negatives)
我正在编写的程序允许用户输入任意数量的正整数。但是,它应该在有人输入负数时退出。
到目前为止,所有这些对我来说都很有效。我的下一期是打印最小的正数。
这是我的代码:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int input;
int count;
int min;
count = 0;
cout << "Input a positive integer to begin: ";
cin >> input;
count++;
while(input > 0)
{
cout << "Continue to input positive integers. Enter negative number to exit: ";
cin >> input;
count++;
min = input;
if (input < min);
min = input;
if (input < 0)
{
cout << "\nLowest number: " << min << endl;
cout << "Total numbers inputed: " << --count << endl;
break;
}
}
}
到目前为止,当我 运行 时代码给了我这个:
输入一个正整数开始:45
继续输入正整数。输入负数退出:48
继续输入正整数。输入负数退出:74
继续输入正整数。输入负数退出:1
继续输入正整数。输入负数退出:-1
最低数:-1
输入总数:4
但是我希望它打印出最低数字是 1 或用户输入的任何小的正整数。
如有任何帮助,我们将不胜感激!谢谢!
您在检查它是否为负之前更新您的最小数字:
if (input < min)
...
if (input < 0)
...
您需要做的就是交换两个 if 块,以便在遇到负数时程序首先检查它是否为负数,并且 break
在第二个 if 块之前执行。
此外,您的代码中似乎多了一个分号(还有一个额外的赋值?)
你有 2 个问题导致了这个:
1:
if (input < min);
你不应该在if
后面放分号,不管是真还是假if
后面的代码都会执行
2:解决第一个问题后:
if (input < min)
min = input;
它会把任何input
赋给满足条件的min
,即使是负数
因此您必须添加另一个条件以确保 input
为正,然后将其分配给
if ((input < min) && (input > 0))
min = input;
编辑:您需要删除恰好放在 if
之前的 min = input;
完整代码:
#include <iostream.h>
#include <iomanip.h>
int main()
{
int input;
int count;
int min;
count = 0;
cout << "Input a positive integer to begin: ";
cin >> input;
count++;
while(input > 0)
{
cout << "Continue to input positive integers. Enter negative number to exit: ";
cin >> input;
count++;
if ((input < min) && (input > 0))
min = input;
if (input < 0)
{
cout << "\nLowest number: " << min << endl;
cout << "Total numbers inputed: " << --count << endl;
break;
}
}
}
我正在编写的程序允许用户输入任意数量的正整数。但是,它应该在有人输入负数时退出。
到目前为止,所有这些对我来说都很有效。我的下一期是打印最小的正数。
这是我的代码:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int input;
int count;
int min;
count = 0;
cout << "Input a positive integer to begin: ";
cin >> input;
count++;
while(input > 0)
{
cout << "Continue to input positive integers. Enter negative number to exit: ";
cin >> input;
count++;
min = input;
if (input < min);
min = input;
if (input < 0)
{
cout << "\nLowest number: " << min << endl;
cout << "Total numbers inputed: " << --count << endl;
break;
}
}
}
到目前为止,当我 运行 时代码给了我这个:
输入一个正整数开始:45
继续输入正整数。输入负数退出:48
继续输入正整数。输入负数退出:74
继续输入正整数。输入负数退出:1
继续输入正整数。输入负数退出:-1
最低数:-1
输入总数:4
但是我希望它打印出最低数字是 1 或用户输入的任何小的正整数。
如有任何帮助,我们将不胜感激!谢谢!
您在检查它是否为负之前更新您的最小数字:
if (input < min)
...
if (input < 0)
...
您需要做的就是交换两个 if 块,以便在遇到负数时程序首先检查它是否为负数,并且 break
在第二个 if 块之前执行。
此外,您的代码中似乎多了一个分号(还有一个额外的赋值?)
你有 2 个问题导致了这个:
1:
if (input < min);
你不应该在if
后面放分号,不管是真还是假if
后面的代码都会执行
2:解决第一个问题后:
if (input < min)
min = input;
它会把任何input
赋给满足条件的min
,即使是负数
因此您必须添加另一个条件以确保 input
为正,然后将其分配给
if ((input < min) && (input > 0))
min = input;
编辑:您需要删除恰好放在 if
min = input;
完整代码:
#include <iostream.h>
#include <iomanip.h>
int main()
{
int input;
int count;
int min;
count = 0;
cout << "Input a positive integer to begin: ";
cin >> input;
count++;
while(input > 0)
{
cout << "Continue to input positive integers. Enter negative number to exit: ";
cin >> input;
count++;
if ((input < min) && (input > 0))
min = input;
if (input < 0)
{
cout << "\nLowest number: " << min << endl;
cout << "Total numbers inputed: " << --count << endl;
break;
}
}
}