首页 > 解决方案 > 如何从用户输入中输出最大 int?

问题描述

我写了一个程序,应该int从用户输入中输出最大值:

15 20 0 5 -1

应该输出Max: 20

似乎有一个无限循环,因为它永远不会到达最终cout语句。while 循环应该以负数停止。它现在没有输出任何东西。

这是我的代码:

#include <iostream>

using namespace std;

int main()
{

    int currV;
    int maxSoFar;

    // 15 20 0 5 -1

    // should output 20

    cin >> currV;
    if (currV > 0)
    {
        maxSoFar = currV;
    }

    while (currV > 0)
    {

        if (currV > maxSoFar)
        {
            maxSoFar = currV;
        }
        cin >> currV;
    }
    cout << "Max: " << maxSoFar;
}

标签: c++while-loopinteger

解决方案


首先,我建议更好地格式化您的代码。

此外,您的代码看起来很混乱,我建议您这样做:

#include <iostream>
using namespace std;

int main() {

    int currV = 0;
    int maxSoFar = 0;

    while (cin >> currV)
    {
        if(currV < 0)
        {
            cout << "Max: " << maxSoFar;
            return 0;
        }

        if(currV > maxSoFar)
        {
            maxSoFar = currV;
        }
    }
}

推荐阅读