-6

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

#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;
}
4

2 回答 2

1

你的average计算有点偏离,在数学方面你必须考虑运算的顺序。乘法和除法总是先完成,然后是加法和减法。你最终得到的是 ONLYdec除以 12,然后你把所有其他的天都加到它上面。要解决此问题,您需要将所有月份的加法包含在括号中,以强制先进行加法,然后再进行除法。在这种情况下,您可以只使用您的year变量,因为它已经将所有月份加在一起并除以 12。

就您的问题而言,您希望显示输入的最高值和最低值,但我没有看到任何尝试在您的代码中解决此问题。我不太愿意为您编写代码,因此我将简要说明您需要做什么。查看每个月的值,每次查看下个月时,将其与您记得的当前最高值和当前最低值进行比较。当新月份有新的更高或新的更低值时,您将替换您记住的值。一旦你每个月循环,你最终会得到你的最高值和最低值。

于 2013-08-15T18:37:37.717 回答
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
于 2013-08-15T18:41:44.433 回答