/**** * * This program computes simple statistics for three real numbers read from * standard input. The statistics computed are the sum of the numbers, the * arithmetic mean, and the standard deviation. The results are output to * standard output, in the following form: * * Sum = * Mean = * Standard Deviation = * * The precise formulae for mean and standard deviation are as defined here: * * http://www.gcseguide.co.uk/statistics_and_probability.htm * * * Author: Gene Fisher (gfisher@calpoly.edu) * Created: 31mar11 * Last Modified: 3apr11 * */ #include #include #define NUM_DATA_POINTS 3 /* Fixed number of data points */ /* * Declare the prototypes for functions used in the program. */ double compute_sum(double x1, double x2, double x3); double compute_mean(double x1, double x2, double x3); double compute_std_dev(double x1, double x2, double x3); int main () { /* * Declare the variables used in main. */ double x1, x2, x3; /* Input variables */ double sum; /* Computed sum */ double mean; /* Computed mean */ double std_dev; /* Computed standard deviation */ /* * Prompt the user for the input. */ printf("Enter three real numbers, separated by spaces: "); /* * Input the numbers. */ scanf("%lf%lf%lf", &x1, &x2, &x3); /* * Compute the sum. */ sum = compute_sum(x1, x2, x3); /* * Compute the mean. */ mean = compute_mean(x1, x2, x3); /* * Compute the standard deviation. */ std_dev = compute_std_dev(x1, x2, x3); /* * Output the results. */ printf("Sum = %f\n", sum); printf("Mean = %f\n", mean); printf("Standard Deviation = %f\n\n", std_dev); return 0; } /* * Return the sum of the given three numbers. */ double compute_sum(double x1, double x2, double x3) { return x1 + x2 + x3; } /* * Return the arithmetic mean of the given three numbers. */ double compute_mean(double x1, double x2, double x3) { return compute_sum(x1, x2, x3) / NUM_DATA_POINTS; } /* * Return the standard deviation of the given three numbers. */ double compute_std_dev(double x1, double x2, double x3) { double mean = compute_mean(x1, x2, x3); return sqrt((pow(x1 - mean, 2) + pow(x2 - mean, 2) + pow(x3 - mean, 2)) / (NUM_DATA_POINTS - 1 )); }