I've been writing a program that takes an input and checks if the number is even or odd and outputs an error message if the input is a character not a number my initial code was:
int main()
{
    int x;
    int check = scanf("%d", &x);
    printf("input: ");
    while(check != 1){ //means that the input is inappropriate 
       printf("Error!: unexpected input\n"); 
       printf("input: ");
       check = scanf("%d", &x);
    }
    if(x%2 == 0){
    printf("It's even\n");
    }else{
    printf("It's odd\n");
    }
return 0;
}
when I run an infinite loop printing "Error!: unexpected input\n"
but when I put the following statement in the while loop it works properly the statement is : scanf("%s",&x);
can somebody explains this behavior?
 
     
    