모두의 코드 커뮤니티

9 / 5 * celsius + 32 와 9 * celsius / 5 + 32 의 차이

안녕하세요 선생님의 씹어먹는 C를 공부하고 있는 한 학생입니다
4강에서 생각해보기로 제목의 내용을 알아보라고 하셨는데 직접 계산을 해봤습니다

/* 섭씨온도를 화씨로 바꾸기 */
#include <stdio.h>
int main() {
double celsius; // 섭씨 온도
printf(“섭씨 온도를 화씨 온도로 바꿔주는 프로그램 입니다. \n”);
printf(“섭씨 온도를 입력해 주세요 : “);
scanf(”%lf”, &celsius); // 섭씨 온도를 입력 받는다.
printf(“섭씨 %f 도는 화씨로 %f 도 입니다 \n”, celsius, 9 / 5 * celsius + 32);
return 0;
}

위의 코드에서 9 / 5 * celsius + 32 를 9 * celsius / 5 + 32로 바꾸어 해봤는데 1을 넣었을 때
각각 33과 33.8이 나왔습니다 아무리 그래도 1을 넣었을땐 같은 답이 나올 줄 알았는데 제가 생각한
답과 다른 답인 것 같은데 저는 못 찾을 것 같아서 글을 남깁니다 좋은 강의 해주셔서 정말 감사합니다

3강 계산하기 글을 읽어봤는데 곱셈과 나눗셈의 우선순위도 동등하고 계산 방향도 왼쪽이여서 문제점을 못찾겠습니다 ㅜㅜ

좋아요 1

9 / 5 를 먼저 하면 9 와 5 가 모두 정수 이므로, 정수끼리의 나눗셈이 수행됩니다. 따라서 9 / 5 = 1 이 사실상 1 * celsius + 32 를 한 셈이 됩니다.