*Assignment 1: Write a program that lets the user enter the total rainfall for e
ID: 671943 • Letter: #
Question
*Assignment 1: Write a program that lets the user enter the total rainfall for each of 12 months into an array of doubles.
The program should use two 12-element arrays. One array will hold strings, the names of the 12 months.
This array will be initialized when the array is created using an initialization list
(could also be created as an array of constants). The second array will hold doubles which will be the total rainfall
for each month. The program will prompt the user for the rainfall for each month (using both arrays) and store the
value entered into the array with the rainfall totals; the other is used to display which month the program is
asking for the rainfall total. The program should display the following once the data is all entered:
The total rainfall for the year
The average monthly rainfall
The month with the highest amount of rainfall (must display the month as a string)
The month with the lowest amount of rainfall (must display the month as a string)
The program must have the following functions:
double getTotal(double [ ], int); - gets the total of the complete array except for the totals in the last column and last row.
double getAverage(double [ ], int);
double getLowest(double [ ], int, int&); //returns the lowest value, provides the index of the lowest value in the last parameter.
double getHighest(double [ ], int, int&); //returns the highest value, provides the index of the highest value in the last parameter.
Explanation / Answer
#include <iostream>
using namespace std;
double getTotal(double rainfalls[ ], int numOfMonths)//Function to calculate the grand total rainfall
{
double sum = 0.0;
for(int i = 0; i < numOfMonths; i++) //Summation logic.
sum += rainfalls[i];
return sum;
}
double getAverage(double rainfalls[ ], int numOfMonths) //Function to calculate the average rainfall
{
return getTotal(rainfalls,numOfMonths)/numOfMonths; //Reusing the getTotal function for summation, and dividing by numOfMonths.
}
double getLowest(double rainfalls[ ], int numOfMonths, int &index) //Function to get the Lowest rainfall month index
{
for(int i = 1; i < numOfMonths; i++) //Loop to run for each month from February to December
if(rainfalls[i] < rainfalls[index]) //If this month temperature is lower than the index one.
index = i; //Update the index.
return rainfalls[index]; //Return the lowest rainfall.
}
double getHighest(double rainfalls[ ], int numOfMonths, int &index ) //Function to get the Highest rainfall month index
{
for(int i = 1; i < numOfMonths; i++) //Loop to run for each month from February to December.
if(rainfalls[i] > rainfalls[index]) //If this month temperature is higher than the index one.
index = i; //Update the index.
return rainfalls[index]; //Return the highest rainfall.
}
int main()
{
int index = 0; //Initializing the index.
double rainfalls[12];
string months[12] = { //Initializing the months array.
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
};
for(int i = 0; i < 12; i++) //Loop for Reading temperatures for each month.
{
cout<<"Enter the rainfall total for the month of "<<months[i]<<": ";
cin>>rainfalls[i];
}
cout<<"The total rainfall of the year is: "<<getTotal(rainfalls,12)<<endl; //Displaying total rainfall.
cout<<"The average monthly rainfall is: "<<getAverage(rainfalls,12)<<endl; //Displaying average rainfall.
getHighest(rainfalls, 12, index);
cout<<"The month with the highest amount of rainfall is: "<<months[index]<<endl; //Displaying the month with highest rainfall.
getLowest(rainfalls, 12, index);
cout<<"The month with the lowest amount of rainfall is: "<<months[index]<<endl; //Displaying the month with lowest rainfall.
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.