The program says it's stopped working after I input the first number...

#include <iostream>
using namespace std;

int average();

int main(){

cout << "Average calculator." << endl;
cout << endl;
cout << " Enter a stream of positive numers (0 or above)." << endl;
cout << "Enter a negative number to indicate you are finished." << endl;

average();
cout << "Do you want to compute another average (y or n)?" << endl;

{cout << "Average calculator." << endl;
cout << endl;
cout << " Enter a stream of positive numers (0 or above)." << endl;
cout << "Enter a negative number to indicate you are finished." << endl;
}
{return 0;}

return 0;
}

int average(){

int value = 0;
int count = 0;
int sum = 0;
int average;

while (value >= 0)
{cin >> value;
sum = sum + value;
count++;
count = count - 1;
average = sum / count;

if (value < 0)
{return average;}

}
}
zumorukato commented: atm code +0

You should just put all the code that you're going to repeat under the while loop, instead of splitting it up. In fact, use a do loop which guarantees it always runs once.

do {
cout << "Average calculator." << endl;
cout << endl;
cout << " Enter a stream of positive numers (0 or above)." << endl;
cout << "Enter a negative number to indicate you are finished." << endl;
average();  // you forgot to include another call to average()

The real issue with your program is when you're calculating average, lines 42-44.

let's say for instance that count = 0

count++;    // count = 1
count = count -1;   // count = 0
average = sum / count;  // division by 0

I would grab a piece of paper and a pencil and start here:

int value = 0;
int count = 0;
int sum = 0;
int average;

Write down the above variables on the paper and their values.
Then continue looking at each line of code and change the value of each of the variables:

while (value >= 0)
{cin >> value;
sum = sum + value;

So change value to a number you decide to input.
Change sum accordingly
Be sure to "input" different numbers and your negative number as you run through these steps. NOTE: only ONE (1) number per cin...

count++;
count = count - 1;

change count accordingly

average = sum / count;

change average -- is this right? what is an average? the sum of what?

if (value < 0)
{return average;}

}
}
I changed a few things, but I still need help...

#include <iostream>
using namespace std;

double average();

int main(){

cout << "Average calculator." << endl;
cout << endl;
cout << "Enter a stream of positive numbers (0 or above)." << endl;
cout << "Enter a negative number to indicate you are finished." << endl;

int value;

while (  )             //not sure what to put here
cin >> value;
if (value >= 0)
{average();}

if (value < 0)
{cout << "The average is: " << average() << endl;
cout << endl;
cout << "Do you want to compute another average (y or n)?" << endl;

{cout << "Enter a stream of positive numbers (0 or above)." << endl;
cout << "Enter a negative number to indicate you are finished." << endl;
average();}
{return 0;}
}

double average(){

int value;
int count = 0;
int sum = 0;
double average;

do
{cin >> value;
sum += value;
count++;
average = sum / count;
return average;

if (value < 0)
{return 0;}
} while (value >= 0);

}

If you aren't going to try what I suggested, I obviously can't help you.

See what WaltP has said in his above post. I'm quite sure you will get your answer for this

while ( ) //not sure what to put here

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.