/* Compute chi-squared test for me please */ #include #define MAX_BINS 100 #define DEBUG 1 int main() { int i, bins; float expected[MAX_BINS]; float observed[MAX_BINS]; float sum = 0.0; printf("How many bins? "); scanf("%d", &bins); if( bins > MAX_BINS ) { fprintf(stderr, "Sorry, but I can't do that many!\n"); return; } printf("Enter expected value for each bin: "); for( i = 0; i < bins; i++ ) { scanf("%f", &expected[i]); } printf("Enter observed value for each bin: "); for( i = 0; i < bins; i++ ) { scanf("%f", &observed[i]); } /* compute chi-squared statistic */ sum = 0.0; for( i = 0; i < bins; i++ ) { float temp; temp = (observed[i] - expected[i]) * (observed[i] - expected[i]) / expected[i]; printf("Bin %d contributes %f to the sum...\n", i, temp); #ifdef DEBUG #endif sum += temp; } printf("Sum: %f \n", sum ); printf("Degrees of Freedom: %d\n", bins-1 ); }