如何使用do while循环确定最高和最低值

时间:2018-10-19 16:16:46

标签: c++

我目前处于家庭作业状态,问题是我需要创建一个程序,该程序将要求5个整数,并且我应该确定最高和最低值。到目前为止,我很困惑,我的初始代码是this。

#include<iostream>
using namespace std;

int main(){

 int num1,num2,num3,num4,num5,min=0,max=0;

 cout << " Enter 1st number : ";
 cin >> num1;
 cout << " Enter 2nd number : ";
 cin >> num2;
 cout << " Enter 3rd number : ";
 cin >> num3;
 cout << " Enter 4th number : ";
 cin >> num4;
 cout << " Enter 5th number : ";
 cin >> num5;
 do{
    if(num1<num2 && num1<num3 && num1<num4 && num1<num5 ){
    max = num1;}
    if(num2<num1 && num2<num3 && num2<num4 && num2<num5 ){
    max = num2;}
    if(num3<num1 && num3<num2 && num3<num4 && num3<num5 ){
    max = num3;}
    if(num4<num1 && num4<num3 && num4<num2 && num4<num5 ){
    max = num4;}
    if(num5<num1 && num5<num3 && num5<num4 && num5<num2 ){
    max = num2;}
 }while(max>0);
 cout << " The highest number is : " <<max;


return 0;
}

任何帮助将不胜感激。预先感谢!

6 个答案:

答案 0 :(得分:1)

如果允许您使用std::maxstd::min,则可以使用:

max = std::max({num1, num2, num3, num4, num5});
min = std::min({num1, num2, num3, num4, num5});

简化循环中的代码。

答案 1 :(得分:1)

您应该将数字存储到std::vector<int>std::array中,然后使用std::minmax_element算法获得最大和最小的数字。

答案 2 :(得分:1)

这是我不使用数组的解决方案。 我建议您自己尝试一下。您只是复制代码就不会学。

#include <iostream>

int main() {
    int i=0, num, min=INT_MAX, max=INT_MIN;

    do {
        std::cout << "Enter number: ";
        std::cin >> num;
        if (num < min) {
            min = num;
        }
        if (num > max) {
            max = num;
        }
        i++;
    } while (i < 5);

        std::cout << "The max number is: " << max << std::endl;
        std::cout << "The min number is: " << min << std::endl;

    return 0;
}

答案 3 :(得分:0)

如果您不需要记住,可以循环播放,例如5次,然后在询问下一个数字之前先进行比较。

通常这样(想法,请自己编写并学习):

(5次)
 询问用户输入,另存为输入
 如果最大数字为null,则等于input
 否则,如果最大数较小,则将输入设置为等于最大数

继续循环时间。

答案 4 :(得分:0)

而不是每次都比较所有数字。只需将当前的最小值与按顺序的数字进行比较即可。

int data[5];
// read numbers into data.

int min = data[0];   // Guess that number 0 is the smallst number.

// Now check if the guess is correct and update if you are wrong.
for(int loop = 0; loop < 5; ++loop)
{
     // check if data[loop] is smaller than your current guess.
     // if it is smaller than update your guess.
     // when you have checked all the values exit the loop.
}
std::cout << "Smallest: " << min << "\n";

答案 5 :(得分:0)

不需要使用循环来执行此操作,如果没有使用循环,则可以执行此操作,如果必须使用循环,则必须使用数组或其他数据结构