화씨, 섭씨 온도 변환프로그램

조회수 624회
#include <stdio.h>
double convert_CtoF(double T_C)
{
    double T_F;
    T_F = T_C * 1.8 + 32;
    return T_F;
}
double convert_FtoC(double T_F)
{
    double T_C;
    T_C = (T_F - 32) / 1.8;
    return T_C;
}
int main()
{
    while (1)
    {
        char menu;
        printf("'c' 섭씨온도에서 화씨온도로 변환\n");
        printf("'f' 화씨온도에서 섭씨온도로 변환\n");
        printf("'q' 종료\n");
        printf("메뉴에서 선택하세요");
        scanf_s("%c", &menu);

        double T_C;
        double T_F;

        if (menu == 'c')
        {
            printf("섭씨온도");
            scanf_s("%lf",&T_C);
            printf("화씨온도");
            printf("%lf\n", convert_CtoF(T_C));
        }
        else if (menu == 'f')
        {
            printf("화씨온도");
            scanf_s("%lf", &T_F);
            printf("섭씨온도");
            printf("%lf\n", convert_FtoC(T_F));
        }
        else if(menu=='q')
        {
            break;
        }       
    }   
}

이 상태인데, q를 입력하기 전에 다시한번 입력할때

        printf("'c' 섭씨온도에서 화씨온도로 변환\n");
        printf("'f' 화씨온도에서 섭씨온도로 변환\n");
        printf("'q' 종료\n");
        printf("메뉴에서 선택하세요");

이것이 두번 출력되어 나오는데 이유좀 알 수 있을까요

  • 아마도 버퍼에 뭔가 남아있어서 그렇지 않을까 싶은데 마지막에 else문 추가해서 값 출력해보세요 어떤 값이 나오는지 HIAOAIH 2021.4.14 10:22
  • 엔터키 입력이 버퍼에 남아 있어서 그런 것 같아요. toyseed 2021.4.15 02:18

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

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

(ಠ_ಠ)
(ಠ‿ಠ)