편집 기록

편집 기록
  • 프로필 편집요청빌런님의 편집
    날짜2024.05.23

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


    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); 이 코드가 무시된 채로 반복이 됩니다. 어떤 부분이 잘못되었나요?

  • 프로필 leesi3964@gmail.com님의 편집
    날짜2024.05.17

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


    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); 이 코드가 무시된 채로 반복이 됩니다. 어떤 부분이 잘못되었나요?