Kai-Uwe Bux wrote:
Gary wrote:
Hi, I have a temperature conversion program down pat, but I was told to
add an average, meaning, i need to get the average temperature for as
many times as it was entered. i do not know where to start, and my
stpid book doesnt seem to help.
here is my program
#include <iostream.h>
I take it, you meant:
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
void main( )
That should be
int main ( )
{
int num1, num2, count;
char choice, again;
count=1;
do
{cout<<"This Program will Convert Temperature"<<endl<<endl;
cout<<"Press 1 to Convert Fahrenheight to Celcius"<<endl;
cout<<"Press 2 to Convert Celcius to Fahrenheight"<<endl<<endl;
cin>>choice;
switch (choice)
{ case '1':
cout<<endl<<"Please Type In the Fahrenheight Temperature: ";
cin>>num1;
cout<<endl<<"The Temperature in Celcius is:
"<<(num1-32)*5/9<<endl<<endl;
cout<<"Thank You for Using Temperature Converter v.1"<<endl<<endl;
break;
case '2':
cout<<endl<<"Please Type In the Celcius Temperature: ";
cin>>num2;
cout<<endl<<"The Temperature in Fahrenheight is:
"<<num2*9/5+32<<endl<<endl;
cout<<"Thank You for Using Temperature Converter v.1"<<endl<<endl;
break;
default:
cout<<"Invalid Entry, Try Again";
}
count++;
cout<<"Type N to stop program";
cin>>again;
} while (again!= 'N' && again!='n');
}
In order to compute an average of the temperatures, you need to
a) express all the different temperature using the same units, e.g, Celsius.
b) at the end, compute and output the average.
The most straight forward way to do that, would be to store the temperatures
in a std::vector<> while they are entered and use them at the end to form
an average.
One drawback with retaining all of the previous temperatures though is
that both the amount of memory needed by the vector to hold the
previous results and the amount of time needed to update their average
will keep increasing as each new data point is added. In other words,
our program would not be able to run indefinitely since at some point
it would run out of memory or become too slow for anyone to want to use
it.
A more efficient solution would be to maintain a running average of the
temperature conversions. For a running average the program needs to
keep only a running total of the number of previous conversions
performed. Then each new conversion performed adds 1.0/runningTotal *
conversionValue to the running average (which was initialized to 0
before the first conversion). An actual C++ implementation of this
technique has been left as an exercise for the reader.
Greg