//Ryan Shahriyarpour CS1A Carl Argila CH7 HW Q:2
/*****************************************************************************
*
* Rainfall Statistics
*
*********************
*
* This program reads the rainfall for each of 12 months, then
* displays the total rainfall, the average monthly rainfall, and the months
* with the highest and lowest rainfall
*
* INPUT
* Rainfall (inches) for each of the 12 months
*
* OUTPUT
* Total rainfall, average rainfall, highest month, lowest month
****************************************************************************/
#include <iostream>
#include <string>
using namespace std;
const int MONTHS = 12 ;
int main( )
{
string names[ MONTHS] = { "January" , "February" , "March" , "April" , "May" ,
"June" , "July" , "August" , "September" , "October" ,
"November" , "December" } ;
double rain[ MONTHS] ;
double total = 0 ;
double average;
int high = 0 ;
int low = 0 ;
// Input
for ( int i = 0 ; i < MONTHS; i++ )
{
cout << "Enter rainfall for " << names[ i] << ": " ;
cin >> rain[ i] ;
while ( rain[ i] < 0 )
{
cout << "Cannot be negative. Re-enter: " ;
cin >> rain[ i] ;
}
}
// Add up the total and find the highest and lowest months
for ( int i = 0 ; i < MONTHS; i++ )
{
total = total + rain[ i] ;
if ( rain[ i] > rain[ high] )
high = i;
if ( rain[ i] < rain[ low] )
low = i;
}
average = total / MONTHS;
// Output
cout << "\n Total rainfall: " << total << endl;
cout << "Average monthly rainfall: " << average << endl;
cout << "Highest month: " << names[ high] << " (" << rain[ high] << ")" << endl;
cout << "Lowest month: " << names[ low] << " (" << rain[ low] << ")" << endl;
return 0 ;
}
Ly9SeWFuIFNoYWhyaXlhcnBvdXIgICBDUzFBICAgIENhcmwgQXJnaWxhIENINyBIVyAgUToyCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgogKiBSYWluZmFsbCBTdGF0aXN0aWNzCiAqCiAqKioqKioqKioqKioqKioqKioqKioKICoKICogVGhpcyBwcm9ncmFtIHJlYWRzIHRoZSByYWluZmFsbCBmb3IgZWFjaCBvZiAxMiBtb250aHMsIHRoZW4KICogZGlzcGxheXMgdGhlIHRvdGFsIHJhaW5mYWxsLCB0aGUgYXZlcmFnZSBtb250aGx5IHJhaW5mYWxsLCBhbmQgdGhlIG1vbnRocwogKiB3aXRoIHRoZSBoaWdoZXN0IGFuZCBsb3dlc3QgcmFpbmZhbGwKICoKICogSU5QVVQKICogIFJhaW5mYWxsIChpbmNoZXMpIGZvciBlYWNoIG9mIHRoZSAxMiBtb250aHMKICoKICogT1VUUFVUCiAqICBUb3RhbCByYWluZmFsbCwgYXZlcmFnZSByYWluZmFsbCwgaGlnaGVzdCBtb250aCwgbG93ZXN0IG1vbnRoCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHN0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApjb25zdCBpbnQgTU9OVEhTID0gMTI7CiAKaW50IG1haW4oKQp7CiAgICBzdHJpbmcgbmFtZXNbTU9OVEhTXSA9IHsiSmFudWFyeSIsICJGZWJydWFyeSIsICJNYXJjaCIsICJBcHJpbCIsICJNYXkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkp1bmUiLCAiSnVseSIsICJBdWd1c3QiLCAiU2VwdGVtYmVyIiwgIk9jdG9iZXIiLAoJCQkgICAgICAgICAgICAgICAiTm92ZW1iZXIiLCAiRGVjZW1iZXIifTsKICAgIGRvdWJsZSByYWluW01PTlRIU107CiAgICBkb3VibGUgdG90YWwgPSAwOwogICAgZG91YmxlIGF2ZXJhZ2U7CiAgICBpbnQgaGlnaCA9IDA7CiAgICBpbnQgbG93ID0gMDsKIAogICAgLy8gSW5wdXQKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTU9OVEhTOyBpKyspCiAgICB7CiAgICAgICAgY291dCA8PCAiRW50ZXIgcmFpbmZhbGwgZm9yICIgPDwgbmFtZXNbaV0gPDwgIjogIjsKICAgICAgICBjaW4gPj4gcmFpbltpXTsKICAgICAgICB3aGlsZSAocmFpbltpXSA8IDApCiAgICAgICAgewogICAgICAgICAgICBjb3V0IDw8ICJDYW5ub3QgYmUgbmVnYXRpdmUuIFJlLWVudGVyOiAiOwogICAgICAgICAgICBjaW4gPj4gcmFpbltpXTsKICAgICAgICB9CiAgICB9CiAKICAgIC8vIEFkZCB1cCB0aGUgdG90YWwgYW5kIGZpbmQgdGhlIGhpZ2hlc3QgYW5kIGxvd2VzdCBtb250aHMKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTU9OVEhTOyBpKyspCiAgICB7CiAgICAgICAgdG90YWwgPSB0b3RhbCArIHJhaW5baV07CiAgICAgICAgaWYgKHJhaW5baV0gPiByYWluW2hpZ2hdKQogICAgICAgICAgICBoaWdoID0gaTsKICAgICAgICBpZiAocmFpbltpXSA8IHJhaW5bbG93XSkKICAgICAgICAgICAgbG93ID0gaTsKICAgIH0KICAgIGF2ZXJhZ2UgPSB0b3RhbCAvIE1PTlRIUzsKIAogICAgLy8gT3V0cHV0CiAgICBjb3V0IDw8ICJcblRvdGFsIHJhaW5mYWxsOiAiIDw8IHRvdGFsIDw8IGVuZGw7CiAgICBjb3V0IDw8ICJBdmVyYWdlIG1vbnRobHkgcmFpbmZhbGw6ICIgPDwgYXZlcmFnZSA8PCBlbmRsOwogICAgY291dCA8PCAiSGlnaGVzdCBtb250aDogIiA8PCBuYW1lc1toaWdoXSA8PCAiICgiIDw8IHJhaW5baGlnaF0gPDwgIikiIDw8IGVuZGw7CiAgICBjb3V0IDw8ICJMb3dlc3QgbW9udGg6ICIgPDwgbmFtZXNbbG93XSA8PCAiICgiIDw8IHJhaW5bbG93XSA8PCAiKSIgPDwgZW5kbDsKIAogICAgcmV0dXJuIDA7Cn0=