버그 해결을 위한 모든 질문을 던져
–3 votes
166 views
scanf_s(" %c", &ans);에서 " %c" %앞에 공백을 넣지 않으면

"좌석 예약할래? y or n?\n" 가 두번 출력됩니다. 왜 그런 것인가요??

 

코드:

int main(void) {
    int i, n;
    char ans;
    int arr[SIZE] = { 0 }; // 변수 및 배열 선언
    while (true)
    {
        printf("좌석 예약할래? y or n?\n");
        scanf_s(" %c", &ans);
        if (ans == 'y')
        {
            printf("---------------------\n");
            printf("1 2 3 4 5 6 7 8 9 10\n");
            printf("---------------------\n");
            for (i = 0; i < SIZE; i++)
                printf("%d ", arr[i]);
            printf("\n");
            printf("몇 번째 좌석을 예약하시겠습니까?");
            scanf_s("%d", &n);

            if (n <= 0 || n > SIZE) {
                printf("1~10 적어라\n");
            }

            if (arr[n - 1] == 0)
            {
                arr[n - 1] = 1;
                printf("예약되었습니다.\n");
            }
            else
                printf("이미 예약된 자리입니다.");
        }
        else if (ans == 'n')
            return 0;
    }
    return 0;
}
asked (-1 point) , 166 views

1 답변

0 votes
y나 n을 안 넣었겠죠
answered (100 point)

버그 해결을 위해 도움을 구하고, 도움을 주세요. 우리는 그렇게 발전합니다.

throw bug 는 프로그래밍에 대한 전분야를 다룹니다. 질문,논의거리,팁,정보공유 모든 것이 가능합니다. 프로그래밍과 관련이 없는 내용은 환영받지 못합니다.

449 질문
598 answers
585 댓글
57,538 users