I am trying to test whether a number received from scanf is between an acceptable range but the else is triggering when it shouldn't be, if I enter 50, it will print "the number entered is not valid"
 for (int i = 1; i <= 20; ++i) {
    
    bool flag = true; 
    
    while (flag == true) {
        int x  = scanf("%d", &uniqueNumber);
        
        if ( (x > 9) && (x < 101) ) {
            uniqueArray[i] = x;
            flag =false;
        } else {
            printf("The number entered is not  valid");
        }
    }
}
 
    