잉기모륑
10
2020-03-31 14:48:10
6
483

c언어 초보입니다.. 실행을 했더니 결과값이 0만 나오네요ㅜㅜ


교재 문제로 화씨온도를 섭씨온도로 변환하는 문제를 풀고 있는데 실행은 되는데 결과값이 0밖에 안나오네요.. 왜 그런건가요??


#include <stdio.h>

int main(void)

{

float F ;

float C ;


printf("화씨온도를 입력하십시오:");

scanf_s("%f", &F);

C = 5 / 9*(F - 32);

printf("섭씨온도:%f\n",C);


return 0;

}

0
  • 답변 6

  • poor
    171
    2020-03-31 15:05:43

    C = 5 / (9*(F - 32));

    소괄호 추가해주세요

    5/9 가 0으로 계산되서 무얼 곱해도 0으로 될거에요

  • youngyoung
    2k
    2020-03-31 15:20:27

    포인터 다시 한번 읽어보세요

    https://dojang.io/mod/page/view.php?id=275


    아래처럼만 바꾸면 되는데..

    플로트형 값 원하는거 같아서 그냥 숫자 대충 바꿨어요

    C = 5.0 / 9.0*(*&F - 32.0);


  • mr3i
    393
    2020-03-31 15:25:21

    poor 님 조언대로 공식을 수정하면 원하는 섭씨 온도를 구하실 수 없을것 같습니다.

    원하는 값이 아니라고 로직을 수정하는건 위험할 것 같습니다.

  • 잉기모륑
    10
    2020-03-31 15:31:22

    답변 감사합니다. 5/9이게 앞에 올때는 몫을 구해서  0이 되는데 뒤에 오면 분수가 되더라구요.. 왜 그런지 물어볼 수 있을까요??

  • defult
    9k
    2020-03-31 15:38:50 작성 2020-03-31 15:39:32 수정됨

    프로그래밍언어에서 정수와 정수의 사칙연삼은 결과가 어찌나오든 소수점을 무조건 버립니다.


    소수점 이하 수치가 필요하시다면

    (float)정수/정수

    같은 식으로 반드시 계산 값중 하나는 소수를 허용하는 값으로 만드셔야합니다

  • 잉기모륑
    10
    2020-03-31 15:56:54

    넵 감사합니다!

  • 로그인을 하시면 답변을 등록할 수 있습니다.