查找用户输入的一组数字中的最大数字

时间:2015-01-14 06:41:42

标签: c++

我买了教科书 C ++如何编程第9版,我遇到了一个问题,我很难过,尽管它可能很简单。总结的问题是:"使用while语句确定并打印用户输入的最大数量的10个数字"。但这是让我难过的部分。这个问题要我只使用3个变量。计数器,数字和最大。我知道为每个输入的数字使计数器变量加1,直到达到10,我知道数字变量用于输入。我似乎无法找到如何使用最大的变量,或者如何在不使用其他变量的情况下检查最大值。这就是我到目前为止所做的一切。现在我在代码中放了一个间隔,所以它不会是一个无限循环。

更新代码

#include <iostream>

using namespace std;

void main()
{
int counter = 0;
int number = 0;
int largest = 0;

cout << "Please enter up to 10 numbers and I will print the largest one on the screen.\n\n";

while (counter <= 10)
{
    cout << "Number: ";
    cin >> number;
    counter++;

    if (number > largest)
    {
        largest = number;
    }

    else if (counter == 10)
    {
        cout << "The largest number was: " << number;
        break;
    }
}
}

4 个答案:

答案 0 :(得分:4)

cout << "The largest number was: " << number;

应该是

cout << "The largest number was: " << largest;

答案 1 :(得分:3)

在while循环中,如果number大于最大值,则设置maximum = number。

然后在最后你可以输出最大值。

答案 2 :(得分:0)

解决方案(你甚至不需要while循环)

#define MAX_NUM 8
//user input goes in myints
int myints[MAX_NUM] = {3,7,2,5,6,4,9};

// using default comparison:
std::cout << "The largest element is " << *std::max_element(myints,myints+MAX_NUM) << '\n';

使用int数组的其他解决方案,即使您可以用一个变量替换int数组

int main() 
{
    int largest = 0;
    int myints[10] = {3,7,2,5,6,4,9,7,2,6};
    for(int i =0 ; i< 10;i++)
    {
        if (myints[i] > largest)
        {
            largest = myints[i];
        }
    }
    cout << largest << endl;
    return 0;
}

Compiled Code Second Compiled Code

答案 3 :(得分:0)

您只需要添加in while循环检查是您输入的数字大于最大值。如果它只是你存储在最大的。实际上你输入了11个数字,因为你从0到10计数。只需将counter设置为1或while(counter <10)

int counter = 1;
    int number = 0;
    int largest = 0;

    cout << "Please enter up to 10 numbers and I will print the largest one on the screen.\n\n";

    while (counter <= 10)
    {
        cout << "Number: ";
        cin >> number;
        counter++;
        if (largest < number)
        {
            largest = number;
        }

    }

    cout << largest << endl;