my programe gets 5 grades and calculates average and max values.but when i enter a letter first instead of a grade, it continuously prints "invalid". when i enter a letter after entering a int value it stops further getting remaining values.can someone explain where i am wrong? thank you
#include <stdio.h>
#include <stdlib.h>
int main()
{
int grade[5];
int temp;
int temp2 = 0;
for(int i = 0; i <= 4; i++) //getting inputs
{
printf("enter grade= ");
scanf("%i", &temp);
if(temp <= 100 && temp >= 0)
grade[i] = temp;
else
{
printf("invalid\n");
i--;
}
}
//print array
for(int i = 0; i <= 4; i++)
printf("%i\n", grade[i]);
//Average
for(int i = 0; i <= 4; i++)
{
temp2 = temp2 + grade[i];
}
printf("avg is= %i\n", temp2 / 5);
//Max
int mx = grade[0];
for(int i = 1; i <= 4; i++)
if(mx < grade[i])
{
mx = grade[i];
}
printf("max is= %i", mx);
return 0;
}