Scanf Scan-Zeichen überspringen [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Scanf überspringt jede andere while-Schleife in C 10 Antworten

Mein Problem ist, dass der Suchlauf für das Zeichen übersprungen wird und das Zeichen nicht überprüft wird, um festzustellen, ob ich das Programm erneut wiederholen möchte oder nicht. Warum geschieht dies?

#include <stdio.h>
#include <stdlib.h>

int main()
{

    int number,check;
    char rep;

    printf("Program to check if number is even or odd");

    while( (rep!='N') || (rep!='n') )
    {
        printf("\n\nPlease enter the number: ");
        scanf("%d",&number);

        check = number%2;

        if(check != 0)
            printf("\nNumber is odd.");
        else
            printf("\nNumber is even.");
        printf("\n");

        printf("Do you want to enter number again?\nY=yes\tN=no\n");
        scanf("%c", &rep);
    }


    return 0;
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage