| This program introduces the topic of survey data analysis. It computes the mean, median, and mode of the data |
| #include <stdio.h> #define SIZE 99 void mean( const int [] ); void median( int [] ); void mode( int [], const int [] ) ; void bubbleSort( int [] ); void printArray( const int [] ); int main() { int frequency[ 10 ] = { 0 }; int response[ SIZE ] = { 6, 7, 8, 9, 8, 7, 8, 9, 8, 9, 7, 8, 9, 5, 9, 8, 7, 8, 7, 8, 6, 7, 8, 9, 3, 9, 8, 7, 8, 7, 7, 8, 9, 8, 9, 8, 9, 7, 8, 9, 6, 7, 8, 7, 8, 7, 9, 8, 9, 2, 7, 8, 9, 8, 9, 8, 9, 7, 5, 3, 5, 6, 7, 2, 5, 3, 9, 4, 6, 4, 7, 8, 9, 6, 8, 7, 8, 9, 7, 8, 7, 4, 4, 2, 5, 3, 8, 7, 5, 6, 4, 5, 6, 1, 6, 5, 7, 8, 7 }; mean( response ); median( response ); mode( frequency, response ); return 0; } void mean( const int answer[] ) { int j, total = 0; printf( "%s\n%s\n%s\n", "********", " Mean", "********" ); for ( j = 0; j <= SIZE - 1; j++ ) total += answer[ j ]; printf( "The mean is the average value of the data\n" "items. The mean is equal to the total of\n" "all the data items divided by the number\n" "of data items ( %d ). The mean value for\n" "this run is: %d / %d = %.4f\n\n", SIZE, total, SIZE, ( double ) total / SIZE ); } void median( int answer[] ) { printf( "\n%s\n%s\n%s\n%s", "********", " Median", "********", "The unsorted array of responses is" ); printArray( answer ); bubbleSort( answer ); printf( "\n\nThe sorted array is" ); printArray( answer ); printf( "\n\nThe median is element %d of\n" "the sorted %d element array.\n" "For this run the median is %d\n\n", SIZE / 2, SIZE, answer[ SIZE / 2 ] ); } void mode( int freq[], const int answer[] ) { int rating, j, h, largest = 0, modeValue = 0; printf( "\n%s\n%s\n%s\n", "********", " Mode", "********" ); for ( rating = 1; rating <= 9; rating++ ) freq[ rating ] = 0; for ( j = 0; j <= SIZE - 1; j++ ) ++freq[ answer[ j ] ]; printf( "%s%11s%19s\n\n%54s\n%54s\n\n", "Response", "Frequency", "Histogram", "1 1 2 2", "5 0 5 0 5" ); for ( rating = 1; rating <= 9; rating++ ) { printf( "%8d%11d ", rating, freq[ rating ] ); if ( freq[ rating ] > largest ) { largest = freq[ rating ]; modeValue = rating; } for ( h = 1; h <= freq[ rating ]; h++ ) printf( "*" ); printf( "\n" ); } printf( "The mode is the most frequent value.\n" "For this run the mode is %d which occurred" " %d times.\n", modeValue, largest ); } void bubbleSort( int a[] ) { int pass, j, hold; for ( pass = 1; pass <= SIZE - 1; pass++ ) for ( j = 0; j <= SIZE - 2; j++ ) if ( a[ j ] > a[ j + 1 ] ) { hold = a[ j ]; a[ j ] = a[ j + 1 ]; a[ j + 1 ] = hold; } } void printArray( const int a[] ) { int j; for ( j = 0; j <= SIZE - 1; j++ ) { if ( j % 20 == 0 ) printf( "\n" ); printf( "%2d", a[ j ] ); } } |