While loop is not looping the amount of times the user enters and when calculating average grade the output is incorrect. please tell me what I'm doing incorrectly?
Code:
#include <stdio.h>
int main(void)
{
/* Declaration of Variables */
/*--------------------------*/
int grade_counter = 0, counter[11], n = 0, i = 2;
float grade[100], sum = 0.0, average;
char c;
/* Output purpose of program being to calculate averages of user input grades */
/*----------------------------------------------------------------------------*/
printf("\nThis program will calculate the average of the grades you enter!\n");
/* Prompt user to enter total number of grades user wishes to average */
/*--------------------------------------------------------------------*/
while(grade_counter <1 || grade_counter >10)
{
counter[i] = -1;
printf("\nTo begin, please enter the total number of grades to process (1-10): ");
scanf("%d", &grade_counter);
while((c = getchar() != '\n') && c != EOF);
/* Ensure grad is between 1 and 100. If not reprompt. */
/*----------------------------------------------------*/
if(grade_counter <1 || grade_counter >10)
printf("*** Invalid Total Entered ***\n");
else
++counter[grade_counter];
}
/* Instruct user to enter user specified number of grades and then prompt for grade to be averaged */
/*-------------------------------------------------------------------------------------------------*/
printf("\nNow enter the %i grades to be averaged.\n", grade_counter);
printf("\nEnter grade #%i (0-100): ",n+=1);
scanf("%f", &grade[n]);
while(( c=getchar() != '\n') && c != EOF);
while(n = 1, n = grade_counter, ++n, grade_counter++ < 10)
{
sum += grade[n];
printf("\nEnter grade #%i (0-100): ", i++);
scanf("%f", &grade[n]);
while(( c=getchar() != '\n') && c != EOF);
/* Ensure grad is between 1 and 100. If not reprompt. */
/*----------------------------------------------------*/
if(grade[n] <0 || grade[n] >100)
{
printf("*** Invalid Grade Entry ***.\n");
continue;
}
grade_counter++;
}
average = sum / grade_counter;
printf("The average of the %i grades entered is %f.", grade_counter, average);
if(average >= 90)
printf("You have a letter grade of A.\n");
else if (average >=80)
printf("You have a letter grade of B.\n");
else if (average >=70)
printf("You have a letter grade of C.\n");
else if (average >=60)
printf("You have a letter grade of D.\n");
else
printf("You have a letter grade of E.\n");
getchar();
}