while문에서 scanf가 제대로 작동하지 않습니다. 코드에 문제가 있는 건가요?

조회수 548회
int main()
{

    char a1;
    int a2;
    int seats[10] = { 0 };
    while (1)
    {
        printf("좌석을 예약하시겠습니까?(y또는 n)");
        scanf("%c", &a1);

        if (a1 == 'n')
            break;

        printf("--------------------\n");
        printf(" 1 2 3 4 5 6 7 8 9 10");
        printf("--------------------\n");

        for (int i = 0; i < 10; i++)
            printf(" %d", seats[i]);
        printf("\n");

        printf("몇 번째 좌석을 예약하시겠습니까?");
        scanf("%d", &a2);

        if (seats[a2 - 1] == 0)
        {
            seats[a2 - 1] = 1;
            printf("예약되었습니다.\n");
        }
        else
            printf("이미 예약된 좌석입니다.\n");
    }
    return 0;
}

극장의 좌석을 예약하는 코드입니다. 이 코드를 실행했을 때 처음에 while문 반복 1회차에서는 정상적으로 작동이 됩니다. 하지만 반복 2회차부터 scanf("%c", &a1); 이 코드가 무시된 채로 반복이 됩니다. 어떤 부분이 잘못되었나요?

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)