C ++ вложенные циклы - PullRequest
       7

C ++ вложенные циклы

1 голос
/ 12 октября 2011

Мне нужно написать программу, которая спрашивает пользователя о количестве лет, а затем спрашивает пользователя о количестве осадков в мм для каждого месяца в течение этих лет. Я должен рассчитать общее количество месяцев, общее количество осадков в среднем, среднее количество осадков в месяц, рассчитать максимальное количество осадков за все месяцы и вывести название месяца (перевести номер месяца в название) и год, в котором выпало максимальное количество осадков. Я написал этот код до сих пор, однако я не могу понять, как точно вывести точное название месяца и год, в котором выпало наибольшее количество осадков, несмотря на то, что я рассчитал самое высокое значение количества осадков.

const int numMonths = 12;
int numYears, months, largest = 0;
double sum = 0;


cout << "Please enter the number of years: ";
cin >> numYears;
cin.ignore();

for (int years = 1; years <= numYears; years ++)
{
    for (int months = 1; months <= numMonths; months ++)
    {
    double rain;
    cout << "Please enter the rainfall in mm for year " << years << ", month " << months << "\n";
    cin >> rain;
    sum += rain;
    if (rain > largest){

        largest = rain;

    }
    cin.ignore();
    }   
}

int totalMonth = numYears*numMonths;
double avgRain = sum / totalMonth;
cout << "Total number of months: " << totalMonth << "\n";
cout << "Total inches of rainfall for the entire period: "<< sum << "\n";
cout << "Average rainfall per month for the entire period: " << avgRain << "\n"; 
cout << "Highest rainfall was " << largest << ;






cin.get();
return 0;

Ответы [ 2 ]

3 голосов
/ 12 октября 2011

Как насчет чего-то вроде:

   if (rain > largest_rain){        
        largest_rain = rain;
        largest_month = months;
        largest_year = years;
    }
1 голос
/ 12 октября 2011

Чтобы сопоставить числа месяцев с именами, я бы поместил их в строковый массив.

string[] months = {"January","February","March"...};

Затем возьмите номер вашего месяца (вычтите 1, если вы индексируете 1) и распечатайте этот индекс вмассив.

Так что все вместе это выглядит так:

string [] month = {"January","February", "March"/*Fill in the rest of the months*/};
int largestMonthIndex = largest_month-1;  
cout << "Month that the largest rain fall occurred in: " <<month[largetMonthIndex];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...