반응형

백준 1008번 A/B 풀이 코드 | C (C언어)


풀이

scanf()로 a, b 변수를 받고 prinf()로 a/b를 출력합니다. 입력 시엔 변수명 앞에 &을 쓰는 것에 유의합니다. 상대오차가 10 이내여야 한다는 단서가 있으므로 소숫점 아래 9자리까지 실수형으로 출력합니다.

아래 코드처럼 입력시 a, b 변수를 정수(int)로 받았다면 나누기 연산 시 실수(double)로 형 변환을 해야 합니다. 이때 (double)(a / b)로 작성하면  (a / b)가 소숫점이 절삭된 정수로 먼저 계산된 뒤 실수 형태로 변환되기 때문에 오차가 발생합니다. 나눗셈 연산보다 변수 a의 실수 변환이 먼저 되도록 (double) a / b로 작성해 주세요.

코드

#include <stdio.h>

int main () {
    int a, b;
    scanf("%d %d", &a, &b);
    printf("%.9f", (double)a / b);
    return 0;
}

문제 출처

https://www.acmicpc.net/problem/1008

반응형

+ Recent posts