티스토리 뷰
이번 포스팅은 백준 알고리즘 사이트의 1008번 A/B 문제를 C 언어로 코딩해보도록 하겠습니다. 아래 url로 접속하시면 문제를 볼 수 있습니다.
https://www.acmicpc.net/problem/1008
지난 백준 알고리즘 포스팅과 같은 단계로 사칙연산 도전하기 단계의 문제입니다.
사칙연산 도전하기의 문제들과 동일하게 사용자로부터 두 수를 입력 받고, 입력받은 수를 계산하여 출력하는 문제입니다.
여기서 다른점 한가지는 절대/상대 오차가 10^-9 까지 허용한다는 것으로, 소수점 이하 9자리까지 출력을 허용해야 한다는 점입니다.
1 2 3 4 5 6 | #include <stdio.h> void main(){ double a, b; scanf("%lf %lf", &a, &b); printf("%.9lf", a/b); } | cs |
코드를 보시면 3번 라인에서 a와 b를 받는 자료형을 double로 설정하고, a와 b를 입력받고 출력할 때 %lf를 사용하였습니다.
이는 아래 표를 참고하시면 이유를 알 수 있습니다.
먼저 a와 b를 입력받아 나누고 소수점 이하 자리수까지 나타내려면 일반 정수형이 아닌 실수형으로 자료형을 지정해야한다는 것을 알 수 있습니다.
하지만 실수형도 표와 같이 float, double, long double과 같이 종류가 여러가지가 있는데, 이 중에 1008번 문제에 맞는 자료형을 선택해서 코드를 작성해야 합니다.
문제에서 제시한 절대/상대 오차가 10^-9 인점과 소수점 아래 9자리까지 출력해야 하는 점 등으로 미뤄봤을 때, float형은 메모리 크기나 소수점 자리수 표현의 부족으로 오차 범위가 제시되어 있는 것보다 크다는 점을 알 수 있습니다.
그렇기에 이 문제에서는 double 형과 그에 맞는 %lf를 사용하여 자료형을 지정하고 입/출력을 해야 합니다.
또한, %lf 앞에 .9를 붙여 소수점 이하 9자리까지 출력할 수 있습니다.
다음 포스팅에서는 다음 단계의 코드를 보도록 하겠습니다.
다음 포스팅에서 봐요 :)
'BaekJoon > C' 카테고리의 다른 글
[BaekJoon/C] 백준 2839번 설탕배달 (0) | 2018.09.10 |
---|---|
[BaekJoon/C] 백준 10869번 사칙연산 (0) | 2018.09.03 |
[BaekJoon/C] 백준 10998번 A×B (0) | 2018.09.03 |
[BaekJoon/C] 백준 11719번 그대로 출력하기 2 (0) | 2018.08.30 |
[BaekJoon/C] 백준 11718번 그대로 출력하기 (1) | 2018.08.28 |
- Total
- Today
- Yesterday
- Oldzombie
- GIT
- 백준
- c
- 우분투
- Ubuntu 18.04
- 구글 애드센스 후기
- Python 언어
- webhacking.kr
- C 언어
- tistory blog
- 승인 후기
- 우분투 18.04
- 백준 코딩
- C 코딩
- 구글 애드센스 설치
- Google Adsense
- 웹해킹
- python
- 구글 애드센스 승인
- ubuntu 18.04 LTS
- 구글
- 구글 애드센스
- python 코딩
- 백준 알고리즘
- Git Bash
- github
- webhacking
- ubuntu
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |