here is my program:
#include <iostream>
using namespace std;
int main(){
int num;
int numtotal = 0;
int numcount = 0;
int big = 0;
int low = 0;
cout<<"enter number or 0 to exit"<<endl;
cin>>num;
while(num != 0){
numtotal = numtotal + num;
numcount++;
big = num;
low = num;
cout<<"enter number or 0 to extit"<<endl;
cin>>num;
if(num < low){
low = num;
}
else if(num > big){
big = num;
}
}
cout<<"total of numbers: "<<numtotal<<endl;
cout<<"totoal of numbers entered: "<<numcount<<endl;
cout<<"biggest number: "<<big<<endl;
cout<<"lowest number: "<<low<<endl;
}
the "low" and "big" outputs are always the last 2 numbers the user inputs, for example:
( 5, 4, 3, 2)
biggest number: 2
lowest number: 0
what am I doing wrong here? thank you
You need to not set big
and low
to num
if the user enters 0
inside the while loop to achieve your desired result.
Otherwise, if you don't do this, your output lowest number will always be 0
in the case the user enters only positive numbers, which I do not think you want:
#include <iostream>
using namespace std;
int main() {
int num;
int total = 0;
int count = 0;
cout << "Enter number or 0 to exit" << endl;
cin >> num;
int biggest = num;
int lowest = num;
while (num != 0) {
total += num;
count++;
cout << "Enter number or 0 to exit" << endl;
cin >> num;
if (num != 0) {
if (num < lowest) {
lowest = num;
} else if (num > biggest) {
biggest = num;
}
}
}
cout << "Total of numbers: " << total << endl;
cout << "Amount of numbers entered: " << count << endl;
cout << "Biggest number: " << biggest << endl;
cout << "Lowest number: " << lowest << endl;
return 0;
}
Example Usage:
Enter number or 0 to exit
5
Enter number or 0 to exit
4
Enter number or 0 to exit
3
Enter number or 0 to exit
2
Enter number or 0 to exit
0
Total of numbers: 14
Amount of numbers entered: 4
Biggest number: 5
Lowest number: 2