Home getting inf when calculating standard devation in c

# getting inf when calculating standard devation in c

asdf
1#
asdf Published in 2018-02-14 04:24:25Z
 Attempting to write a program in c that intakes in an amount of numbers. ie 1, 2, 3, 4, and returns size, max, min, average and standard deviation. While trying to calculate standard deviation when calculating sumx ( line 51) it begins returng inf. not sure why I would be getting inf with an addition function. I have all the print methods to try identify where it breaks. #include #include #include int main(void) { setvbuf(stdout, NULL, _IONBF, 0); // Turn off output buffering. Required for automated testing. return EXIT_SUCCESS; int temp; float grade, alteredGrade,standardD, sdPartOne, sdPartTwo, sdPartThree, sum; float sum; float sumx = 0.0; int counter = 0; int max; int min; float average; char buffer[BUFSIZ+1]; printf("Enter scores, one per line. Press on a blank line to end.\n"); // NOTE: The \n is required for automated testing. do { grade = atoi(fgets(buffer, BUFSIZ, stdin)); //sets max and min to grade max = grade; min = grade; //lets loop iterate once to establish initial comparable value - breaks if(counter > 0){ temp = grade; if(max > temp){ min = grade; } else{ max = grade; } } //average sum = grade + sum; average = (float)(sum/counter); counter++; //standard deviation sdPartOne = (grade - average); sdPartTwo = sdPartOne * sdPartOne; //breaks sumx = sumx + sdPartTwo; sdPartThree = sumx / counter; standardD = sqrt(sdPartThree); } while(buffer[0] != '\n'); printf("\t%f", sdPartOne); printf("\t%f", sdPartTwo); printf("\t%f", sumx); printf("\t%f", sdPartThree); printf ("\n%d", counter - 1); printf("\t%d", max); printf("\t%d", min); printf("\t%f", average); printf("\t%f", standardD); } 
4386427
2#
 You initialize  int counter = 0;  and in your first loop do  average = (float)(sum/counter); // In the first loop count is zero, i.e. divide by zero counter++;  so you divide by zero which leads to inf Just switch the lines like:  counter++; average = (float)(sum/counter);