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;
}
 
     
     
     
    