Problem 6 Solution: Average With A Do-While-Loop

The do-while-loop is suitable for situations where the test value is input or calculated in the loop body, often leading to a compact solution. One aspect of the average problem complicates the do-while solution. When the user enters a -1 to end data input, the program increments count and updates sum before the loop ends. The program decrements count and increments sum below the loop, correcting the end-of-loop problem before calculating the average. The program also fails if the user enters a value < -1.

double ave3()
{
	double	sum = 0;
	int	count = 0;
	int	number;

	do
	{
		cout << "Enter a number: ";
		cin >> number;

		sum += number;
		count++;

	} while (number >= 0);

	if (--count > 0)
		return ++sum / count;
	else
		return -1;
}
ave3: do-while-loop based function calculating a mean or average.