In: Computer Science
Write a C++ program that uses nested loops to collect data and calculate the average rainfall over a period of years. The program should first ask the user for the number of years. The outer loop will iterate once for each year. The inner loop will iterate 12 times, once for each month. Each iteration of the inner loop will ask the user for the inches of rainfall for that month.
After all iterations, the program should display the number of months, the total inches of rainfall, and the average rainfall per month for the entire period.
Add additional loops to validate the input: Do not accept a number less than 1 for the number of years. Continue to prompt the user for a number until a valid number is entered. Do not accept negative numbers for the monthly rainfall. Continue to prompt the user for a number until a valid number is entered.
Test Run
This program will calculate average rainfall over a
period of years. How many years do you wish to average? 0
Years must be at least one. Please re-enter: -2
Years must be at least one. Please re-enter: 2
Year 1
Number of inches of rain for month 1? 1.555
Number of inches of rain for month 2? 3.5
Number of inches of rain for month 3? 2
Number of inches of rain for month 4? 4
Number of inches of rain for month 5? 2
Number of inches of rain for month 6? 4
Number of inches of rain for month 7? 2
Number of inches of rain for month 8? 4
Number of inches of rain for month 9? 2
Number of inches of rain for month 10? 4
Number of inches of rain for month 11? 2
Number of inches of rain for month 12? 4
The rainfall for year 1 is 35.055 and the average rainfall for the year is 2.921
Year 2
Number of inches of rain for month 1? -2
Rainfall must be zero or greater.
Number of inches of rain for month 1? 3
Number of inches of rain for month 2? 4
Number of inches of rain for month 3? 3
Number of inches of rain for month 4? 4
Number of inches of rain for month 5? 3
Number of inches of rain for month 6? 4
Number of inches of rain for month 7? 3
Number of inches of rain for month 8? 4
Number of inches of rain for month 9? 3
Number of inches of rain for month 10? 4
Number of inches of rain for month 11? 2.665
Number of inches of rain for month 12? 3.3
The rainfall for year 2 is 40.965 and the average rainfall for the year is 3.414
Over a period of 24 months, 76.020 inches of rain fell.
Average monthly rainfall for the period is 3.168 inches.
Code:
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int n,i,j;
double totalSum=0,sum,rain;/*Declaring the
variables*/
cout<<"The program will calculate avaerage
rainfall over a period of years."<<endl;
cout<<"How many years do you wish to
average?";
cin>>n;/*Reading years form the user*/
while(n<=0)
{/*This loop iterates untill user enter a number which
is greater than or equals 1*/
cout<<"Year must be at least
one.Please re-enter:";
cin>>n;
}
for(i=1;i<=n;i++)
{/*This loop iterates for 1 to n*/
sum=0;/*Making sum as 0 for every
year*/
cout<<"Year
"<<i<<endl;
for(j=1;j<=12;j++)
{
cout<<"Number of inches of rain for month
"<<j<<"?";
cin>>rain;/*Reading rain fall for every month*/
while(rain<0)/*This loop iteraes untill user enters rain fall 0
or greater*/
{
cout<<"Rainfall must be zero or
greater."<<endl;
cout<<"Number of inches of rain for month
"<<j<<"?";
cin>>rain;
}
sum+=rain;/*Adding the rain fall for every month*/
}
cout<<fixed<<setprecision(3)<<"The rainfall for
year "<<i<<" is "<<sum<<" and the average
rainfall for the year is "<<sum/12.0<<endl;
/*Printing the result of one
year*/
totalSum+=sum;/*Adding the rain
fall the total period rain fall*/
}
cout<<"Over a period of "<<n*12<<"
months,"<<totalSum<<" inches of rain
fell."<<endl;
cout<<fixed<<setprecision(3)<<"Average Monthly
rainfall for the period is "<<totalSum/(12.0*n)<<"
inches"<<endl;
/*Printing the reault for a period*/
}
Output:
Indentation: