我正在编写一个程序,提示用户输入整数。
当用户输入0时,程序停止读取。
它应该输出输入数字中的最大和最小元素。我必须不使用数组。
输入:1 2 3 4 5 0
输出:min=1 max=5
我代码:
#include <iostream>
using namespace std;
int main()
{
int n,max,min;
min=0;
max=0;
do{
cin>>n;
if(n>max){
max=n;
}
if(n<min){
min=n;
}
}
while(n!=0);
cout<<max<<endl;
cout<<min;
}
问题是,当我从我的例子输入整数的输出是min=0 max=5
,而不是min=1 max=5
.
我怎么能解决它?
您可能想先输入一个起始值,然后循环:
int main()
{
int n, min, max;
cin >> n;
min = n;
max = n;
if (n != 0)
{
while (cin >> n)
{
if (n == 0) break;
if (n > max) max = n;
if (n < min) min = n;
}
}
std::cout << "min: " << min << ", max: " << max << "n";
return 0;
}
在上面的代码中,读取第一个值并检查是否为0。如果该值为零,则程序停止输入。
最小值和最大值被赋给第一个值。
循环开始。