티스토리 뷰

BaekJoon/C

[BaekJoon/C] 백준 1008번 A/B

Gabii_Y 2018. 9. 3. 03:15
반응형




이번 포스팅은 백준 알고리즘 사이트의 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자리까지 출력할 수 있습니다.



다음 포스팅에서는 다음 단계의 코드를 보도록 하겠습니다.


다음 포스팅에서 봐요 :)

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
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
글 보관함