Boy, I sure would love it if someone could help me figure this out. My professor has created some code that's a loop for enter numbers. I need to add code to make the program figure averages and standard deviation. I've added the formulas as I believe they should be, and the program runs, but when I test the program with some small numbers I can do in my head, the average and deviation is wrong. Here's the code, stripped of pretty formatting....
Code:
// Program Abstract: the purpose of this program is to determine the average and standard deviation of input numbers
// Input Required: list of numbers
// Output Desired: program will output the list of numbers,
// average and standard deviation of each number
// =============================================================================
#include <conio.h>
#include <fstream.h>
#include <iomanip.h>
#include <iostream.h>
#include <math.h>
//==============================================================================
// variable declarations
// alphabetized variable dictionary
// =========================================================================
// d is data
// i is spacing
// m is average
// n is count
// reply stores user's answer to queries
// s is standard deviation
// x is sum
int main() {
double d, i, m, n, s, x;
double average, stddev, sum, sumsqr;
char reply;
ofstream fout;
fout.open ("prompt.txt");
// introduce the program to determine average and
// standard deviation of a list of numbers
//==============================================================================
cout << setw (61) << "Program for average and standard deviation";
// press any key to continue
cout << setw (52) << "Press RETURN to continue";
getchar();
// run program until user is done
// loop for data entry, calculates sum and counter, ends after last while
do
{
// setting beginning numbers to 0
n = 0;
x = 0;
sumsqr = 0;
// loop B check and correct data entry
do
{
clrscr ();
// prompt the user for the next data
cout << setw (61) << "Enter next data, enter -1 to end data stream";
cout << ": ";
cin >> d;
do
{
clrscr ();
// echo print data read
cout << setw (37) << "Is " << d << " correct?";
cout << endl << endl << endl;
// query the user for correctness of input data
cout << setw (55) << "Enter y for yes or n for no: ";
// input response to query
cin >> reply;
tolower(reply);
}
while(reply!='n' && reply!='y');
if(reply=='y') {
++n ;
x += d;
sumsqr += d * d;
// record verified data in output textfile
fout << d << endl;
}
}
while (d != -1);
// calculate average
if ( n > 0 )
m = x / n;
else
m = 0 ;
// press any key to continue
cout << setw (52) << "Press RETURN to continue";
getchar();
// calculate standard deviation
if ( n > 1 )
s = sqrt ((n * sumsqr - x * x) / (n * (n - 1))) ;
else
s = 0;
clrscr ();
cout << setw (50) << "The average is: " << m;
cout << setw (50) << "The standard deviation is: " << s;
// press any key to continue
cout << setw (52) << "Press RETURN to continue";
getchar();
do
{
clrscr ();
// query user for another input data
cout << setw (55) << "Is there another set of data?";
cout << setw (55) << "Enter y for yes or n for no: ";
cin >> reply;
tolower(reply);
}
while ((reply != 'n') && (reply != 'N') &&
(reply != 'y') && (reply != 'Y'));
}
while ((reply == 'y') || (reply == 'Y'));
fout.close ();
return 0;
}