I was trying to ask for an input. If it is not an integer, then it should ask for the input again and that's why I use recursion as below.
#include <stdio.h>
void hi() {
    int a;
    printf("Input a: ");
    if(scanf("%d", &a) == 0)
        a = -1;
    switch(a) {
        case 1:
            printf("Hello!");
            break;
        case 0:
            return;
        default:
            hi();
            return;
            break;
    }
}
int main()
{
    hi();
    return 0;
}
The output is
Input a: *asd* Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a: Input a:
Why won't the scanf in hi() working when I input non-integer value (It doesn't stop the printf and ask for my input) How do I fix it?
 
     
    