편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2021.06.18

    do while 문에서 입력받는 프로그램, 한 번은 되는데 그 다음이 이상함.


    #include <stdio.h>
    
    int main(void)
    {
        char ch;
        int x, y;
        int result;
    
        printf("*****************\n");
        printf("A--- Add\n");
        printf("S--- Subtract\n");
        printf("M--- Multiply\n");
        printf("D--- Divide\n");
        printf("Q--- Quit\n");
        printf("*****************\n");
    
        do
        {
            repeat :
            printf("연산을 선택하시오: ");
            ch = getchar();
            printf("두수를 공백으로 분리하여 입력하시오: ");
            scanf_s("%d %d", &x, &y);
    
            if (ch == 'A')
                result = x + y;
            else if (ch == 'S')
                result = x - y;
            else if (ch == 'M')
                result = x * y;
            else if (ch == 'D')
                result = x / y;
            else if (ch == 'Q')
                break;
            else
                goto repeat;
    
            printf("%d\n", result);
    
        } while (1);
    
        return 0;
    }
    

    이미지

    첫번째 실행은 "연산을 선택하시오" , "두수를 공백으로 분리하여 입력하시오." 가 정상적으로 출력되는데, 두번째 실행부터 이상하네요, 왜 저렇게 한 번에 출력될까요?

  • 프로필 알 수 없는 사용자님의 편집
    날짜2021.06.17

    한 번은 되는데 그 다음이 ㅠ


    include

    int main(void) { char ch; int x, y; int result;

    printf("*****************\n");
    printf("A--- Add\n");
    printf("S--- Subtract\n");
    printf("M--- Multiply\n");
    printf("D--- Divide\n");
    printf("Q--- Quit\n");
    printf("*****************\n");
    
    do
    {
        repeat :
        printf("연산을 선택하시오: ");
        ch = getchar();
        printf("두수를 공백으로 분리하여 입력하시오: ");
        scanf_s("%d %d", &x, &y);
    
        if (ch == 'A')
            result = x + y;
        else if (ch == 'S')
            result = x - y;
        else if (ch == 'M')
            result = x * y;
        else if (ch == 'D')
            result = x / y;
        else if (ch == 'Q')
            break;
        else
            goto repeat;
    
        printf("%d\n", result);
    
    } while (1);
    
    return 0;
    

    }이미지

    첫번째 실행은 "연산을 선택하시오" , "두수를 공백으로 분리하여 입력하시오." 가 정상적으로 출력되는데, 두번째 실행부터 이상하네요, 왜 저렇게 한 번에 출력될까요?