BAEKJOON/C
BAEKJOON_1008 오답
오오렌지
2023. 1. 2. 14:21
#1008
두 정수를 입력받아 A/B를 출력
아래는 처음 오답 풀이이다.
A 와 B가 int형인데 int / int는 int형인걸 간과하고 이를 double로 출력하여 틀렸다.
코드 수정 후
오답풀이
(double)(A / B) 라고 적으면 원하는 값이 출력되지 않는다.
이유는 A, B 모두 int형이기 때문에 사칙연산 규칙에 의해 int 나누기 int는 그 결과값이 int 형이기때문에.
소수아래는 버리고, 결과값만 실수형으롭 변환하가때문에 값이 정확하지않음
예를 들어, A = 5 , B = 4 라고 하면, 1이란 값을 실수형으로 출력하기 때문에 1.25 가 아닌1.000000 이 출력된다
그렇다면 정확하게 값을 나타내려면 어떻게 해야할까?
(double)A / B 라고 적으면 A가 먼저 실수형이 되고,
c언어 사칙연산 규칙에 의해 B도 실수형이 되어 소수 아래까지 계산된 결과까지 얻을 수 있다.