#include #include using namespace std; void err(double); void yrRain(double [], const int, double&); void avgRain(double[], const int, double&); void hlMonths(double [], const int, double&, double&, int&, int&); int main(){ const int months = 12; char again = 'y'; while (again == 'y' || again == 'Y'){ double arrain[months]; cout << "\t\tEnter the rainfall amount for 12 months.\n\n"; for (int i = 0; i < months; i++){ cout << "Month " << i + 1 <<": "; cin >> arrain[i]; while (cin.fail() || arrain[i] < 1){ //fix letter and negatives err(arrain[i]); cout << "Month " << i + 1 << ": "; cin >> arrain[i]; } } double ttl = 0; yrRain(arrain, months, ttl); //yearly rainfall cout << "\n\nThe yearly amount of rainfall was: " << setprecision(2) << fixed << ttl << endl; double avgIn = 0; avgRain(arrain, months, avgIn); //monthly rainfall cout << "The Average rainfall per month was: " << setprecision(2) << fixed << avgIn << endl; double maxR = 0, minR = 0; int maxM = 0, minM = 0; hlMonths(arrain, months, maxR, minR, minM, maxM); //months with highest and lowest rainfall cout << "Month " << (minM+1) << " had the lowest rainfall, and it was: " << setprecision(2) << fixed << minR << endl << "Month " << (maxM+1) << " had the highest rainfall, and it was: " << setprecision(2) << fixed << maxR << endl << endl; cout << "\nEnter y/Y to go again: "; cin >> again; } } void err(double x){ //fix letter or negative number if (cin.fail()) cout << "\t\t/!\\ Not a number /!\\\n"; else if (x < 1) cout << "\t\t/!\\ Negative number /!\\\n"; cin.clear(); fflush(stdin); } void yrRain(double rainray[], const int m, double &sum){ for (int i = 0; i < m; i++) sum += rainray[i]; } void avgRain(double rainray[], const int m, double & avgOut){ for (int j = 0; j < m; j++) avgOut += rainray[j]; avgOut /= m; } void hlMonths(double rainray[], const int m, double& maxRain, double& minRain, int& minMonth, int& maxMonth){ maxRain = rainray[0]; minRain = rainray[0]; double tempRain = 0; for (int k = 0; k < m; k++){ tempRain = rainray[k]; if (tempRain < minRain){ minRain = tempRain; minMonth = k; } if (tempRain > maxRain){ maxRain = tempRain; maxMonth = k; } } }