在C ++中显示最高和最低的数字

时间:2013-08-15 18:31:07

标签: c++

我正在尝试这种方式。似乎更简化了。只是想弄清楚如何包含月份名称,并让程序输出最多雨月份的名称而不是用户输入的数字。

#include <iostream>
#include <conio.h>

using namespace std;
int main ()
{
    int a[12];

    int x;
    for (x=0; x<12; x++)
    {
        cout << "Insert days of rainfall for month "<<x+1<<endl;
        cin >>a[x];
    }
    int max;
    int min;
    max = a[0];
    min = a[0];
    int e=0;
    while (e<12)
    {
        if (a[e]>max)
        {
             max = a[e];
        }
        else if (a[e]<min)
        {
            min = a[e];
        }
        e++;
        cout<<"The rainiest month was " <<max<<endl;
        cout<<"The least rainy month was " <<min<<endl;
        getch ();
        return 0;
    }


    system("PAUSE");
    return EXIT_SUCCESS;
}

2 个答案:

答案 0 :(得分:1)

您的average计算有点偏差,在数学方面您必须考虑操作的顺序。乘法和除法总是先做,然后加法和减法。你最终得到的结果是,只有dec除以12,然后你将所有其他日子添加到它。要解决这个问题,你需要在括号中包含所有月份的添加以强制添加首先发生,然后再进行除法。在这种情况下,您可以使用year变量,因为已经将所有月份加在一起并将其除以12。

就你的问题而言,你想要显示最高和最低值输入,但我没有看到任何尝试在你的代码中解决这个问题。我觉得不太愿意为你编写代码,所以我只是简单地解释一下你需要做什么。查看每个月的值,每次查看下个月,将其与您记住的当前最高值和当前最低值进行比较。当新月有一个新的更高或更低的值时,您将替换您记住的值。每个月循环一次后,您将得到最高和最低值。

答案 1 :(得分:0)

最快,最干净的方法是使用std::vector之类的容器。然后使用std::sort对其进行排序。

// Our container
std::vector<double> userInput;

// Populate the vector. Please don't cin into a double!

// Sort it.
std::sort (userInput.begin(), userInput.end());

// The highest value will be the last value in the vector
// whilst the lowest value will be the first one