//Ryan Robateau CSC5 Chapter 7, P. 444, #2
//
/*******************************************************************************
* Compute Rainfall Statistics
* _____________________________________________________________________________
* This program prompts the user for total rainfall for 12
* months and computes total rainfall for the year, average
* monthly rainfall, and the months with the highest and lowest
* rainfall. This program does not accept negative numbers for
* monthly rainfall.
* _____________________________________________________________________________
******************************************************************************/
#include <iostream>
#include <string>
using namespace std;
int main()
{
const int NUM_MONTHS = 12;
double rainfall[NUM_MONTHS]; // INPUT - Holds amountf of Rainfall
double rainTotal; // OUTPUT - Total amount of rainfall
double rainAverage; // OUTPUT - Average amount of rainfall
double rainMax; // OUTPUT - Highest amount of rain
double rainMin; // OUTPUT - Lowests amount of rain
string monthMax;
string monthMin;
int count;
string monthNames[NUM_MONTHS] = { "January", "February", "March",
"April", "May", "June", "July",
"August", "September", "October",
"November", "December" };
// Loop for input for all months
for (count = 0; count < NUM_MONTHS; count++)
{
cout << "Enter the amount of rainfall for month " << count + 1 << ":\n";
cin >> rainfall[count];
// Input validation
while (rainfall[count] < 0)
{
cout << "\n<ERROR: Please input a valid rainfall value greater than 0>\n";
cout << "Enter the amount of rainfall for month " << count + 1 << ":\n";
cin >> rainfall[count];
}
}
// Compute total
for (count = 0; count < NUM_MONTHS; count++)
rainTotal += rainfall[count];
// Compute average
rainAverage = rainTotal / NUM_MONTHS;
// Determine highest value
rainMax = rainfall[0];
monthMax = monthNames[0];
for (count = 0; count < NUM_MONTHS; count++)
{
if (rainfall[count] > rainMax)
{
rainMax = rainfall[count];
monthMax = monthNames[count];
}
}
// Determine lowest number
rainMin = rainfall[0];
monthMin = monthNames[0];
for (count = 0; count < NUM_MONTHS; count++)
{
if (rainfall[count] < rainMin)
{
rainMin = rainfall[count];
monthMin = monthNames[count];
}
}
// Display findings
cout << "\nTotal rainfall for the year: " << rainTotal << endl;
cout << "Average monthly rainfall: " << rainAverage << endl;
cout << "Month with most rainfall: " << monthMax << endl;
cout << "Month with least rainfall: " << monthMin << endl;
return 0;
}