c언어 왜 소수점을 넣어야 결과가 나오나

조회수 298회

안녕하세요. c 언어 코딩 관련 질문드립니다.

#include <stdio.h>
int main(void)
{ 
    double c, f;
    printf("화씨 값을 입력하시오: ");
    scanf_s("%lf", &f);

    c = 5.0 / 9.0 * (f - 32.0); // <<<---

    printf("섭씨 값은 %lf도 입니다\n", c);

    return 0; 
} 

제가 처음 코드를 작성 할 때 c = 5 / 9 * (f - 32); 이라고 적었는데 결과가

 화씨 값을 입력하시오: 100
 섭씨값은 0.000000도 입니다 

이라고 나오더라고요 .

왜 소수점을 적어야만 결과가 나오는지 궁금합니다.

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    C 언어의 컴파일러는, 5는 int형으로 5.0은 double형으로 인식합니다. 따라서 5/9는 int형 나누기 int형으로 인식되고, int형끼리의 나누기는 몫만 취하기 때문에 5/9의 결과는 0이 됩니다. 결국 5/9*(f-32)0*(f-32)가 되어서 결과가 0이 된 것입니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 아 그 생각을 해보지 못했어요 알려주셔서 감사합니다. 헉이 2023.2.17 15:04

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

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

(ಠ_ಠ)
(ಠ‿ಠ)