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도 실수형이 되어 소수 아래까지 계산된 결과까지 얻을 수 있다.