scanf não está funcionando bem em C

    if (a % 5)
            goto ask;
            else
            goto main;

ask:printf("Do You Want To Exit ? Y \\ N . . . \n");
        scanf("%c", &YN);
        getch();
        if (YN == 'Y')
        {
y:          system("cls");
            YN = 1;
            goto sign;
        }
        else if (YN == 'y')
            goto y;
        else if (YN == 'N')
        {
n:          system("cls");
            YN = 0;
            goto sign;
        }
        else if (YN == 'n')
        {
            goto n;
        }
        else
        {
            printf("Sorry ..Didn't Catch that ... ");
                goto ask;
        }

alguém me ajude a entender meu problema por algum motivo, a saída que recebo desse código é "Deseja sair \ n?" getchar ... "desculpe não entendi o que você quer sair y \ n?"

Parece que saltou sobre oscanf() pela primeira vez e o programa foi diretamente para oelse ==>"sorry i didnt get that" e somente na segunda vez, descobrir como usar oscanf().

questionAnswers(4)

yourAnswerToTheQuestion