반응형
- 이 문제를 풀기 위해 필요한 개념들
- 실수 자료형의 표현 가능한 소수점 이하 자릿수
실수형 메모리 크기 표현 가능한 소수점 이하 자릿수 float 4 byte 6 자리 double 8 byte 15 자리 long double 8 byte 15 자리 또는 그 이상 - scanf 함수를 사용하여 실수를 입력받을 시 서식 지정자
실수형 서식 지정자 float %f double %lf long double %Lf - printf 함수를 사용하여 실수를 출력할 때 서식 지정자
실수형 서식 지정자 float %f double %f long double %lf - 형 변환 방법
- 단순히 데이터의 자료형의 형 변환이 필요한 경우 : 형 변환이 필요한 데이터 앞에 괄호를 사용하여 바꿔주면 된다.
ex) int data → (float) data
- 정수형 데이터를 / 연산하여 실수형 데이터로 출력하고 싶은 경우 (codeup 자료를 이용했음)
- C 언어에서 정수/정수 연산의 결과는 정수로 계산된다.
- 실수/정수, 정수/실수, (실수 자료형) 정수/정수, 정수/(실수 자료형) 정수 등의 연산 결과는 실수 값으로 계산된다.
- (실수 자료형)(정수/정수)는 정수/정수 연산의 결과인 정수 값을 실수형으로 바꾼 것으로 자료형은 실수형이지만 정수 형태로 출력된다.
- 정수/실수 계산 결과가 자동으로 실수형으로 바뀌는 것을 묵시적 (데이터) 형 변환이라고 하고, 어떤 값이나 결과의
데이터형을 강제로 바꾸는 것을 명시적 (데이터) 형 변환이라고 한다. - printf 함수 사용하여 실수 출력 시 소수점 이하 자릿수
- C 언어에서는 실수를 출력 시에 실수 자료형에 상관없이 기본적으로 모두 소수점 이하 6자리까지 출력된다.
- 원하는 소수점 이하 자릿수가 있다면 %. [자릿수][서식지 정자] ( ex, %.9f ) 형식을 사용해야 한다.
- 문제에 제시된 오차가 10^-9 이하가 허용된다는 표현의 의미는 아마도 소수점 이하 자릿수가 9자리 이상이 되어야 한다는 의미로, 실수 자료형들의 소수점 이하 자릿수 차이점과 실수의 자릿수 표현법을 아는지 물어보는 의도라고 생각한다.
- 실수 자료형의 표현 가능한 소수점 이하 자릿수
- 위 개념들을 이용하여 두 가지 방법으로 풀었다.
- 첫 번째
#include <stdio.h> int main() { int a, b; scanf("%d %d", &a, &b); printf("%.9f", (double) a / b); return 0; }
- 두 번째
#include <stdio.h> int main() { double a, b; scanf("%lf %lf", &a, &b); printf("%.9f", a / b); return 0; }
- 첫 번째
반응형
'Algorithm > BaekJoon' 카테고리의 다른 글
[BaekJoon] 백준 2753번 윤년 - C 언어 (0) | 2021.06.18 |
---|---|
[BaekJoon] 백준 9498번 시험 성적 - C 언어 (0) | 2021.06.16 |
[BaekJoon] 백준 1330 두 수 비교하기 - C 언어 (0) | 2021.06.15 |
[BaekJoon] 백준 2588 곱셈 - C 언어 (0) | 2021.06.09 |
[BaekJoon] 백준 10430 나머지 - C 언어 (0) | 2021.06.08 |