We were assigned the following problem:
Write a program with a loop to accept a series of positive integers from the user. Use a sentinel of -99 to terminate the series. After all of the numbers have been entered the program should display the largest and smallest number that was entered and the average of the numbers.
This is what I have so far, what I can't figure out is when the program terminates it displays 0's for the highest and lowest. I need to figure out a way to fix this.
#include<iostream> using namespace std; int main () { int counter = 0; int total = 0; int number; int lowest = 0; int largest = 0; double average; do { cout << "Enter positive integer (Use -99 to terminate) #" << counter+1 << ": "; if(!(cin >> number)) { cin.clear(); cin.ignore(INT_MAX, '\n'); cout << "\nInvalid integer\n"; } else if(number != -99 && number < 0) { cout << "\nNot positive\n"; } else if(number != -99) { total += number; //Accumulator counter++; //Counter if(number > largest) number = largest; else if(number < lowest) number = lowest; } }while(number != -99); average = total / counter; cout << endl << "Average of values: " << average << endl << "Largest number: " << largest << endl << "Lowest number: " << lowest << endl; system("pause"); }
Any help would be appreciated! Seriously stressing out about this.