ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 백준 1008번 : A / B
    개인 공부/백준 문제풀이 2020. 7. 15. 23:45

    역시나 문제 풀이뿐 아니라 개념 숙지에 있어서 꼼꼼함이 중요하단 걸 느끼게 해준 문제...

     

    10^-9 이하의 오차를 허용한다는 거에 주의하지 않고 막 코드를 짰더니 바로 오답... ^.ㅠ

    형변환이 문제였나 싶어서 대충 변수 앞에 자료형을 넣어봤는데

     

    #include <stdio.h>
    int main(){
        int a, b;
        float result;
        scanf("%d%d", &a, &b);
        result = float a / float b;
        printf("%f\n", result);
    }

     

    자료형에 괄호를 넣어주지 않아서 컴파일 에러... 

    수업을 들을 때도 형변환을 조금 헷갈려 하긴 했는데 이렇게 바로 개념이 부족한 게 드러나다니 씁쓸하다...

     

    어쨌든 괄호까지 고쳤음에도 오답이 나와서 결국 질문 게시판을 뒤적여봤다.

     

    소수점 몇 자리까지 출력하느냐에 따라서도 오차가 발생하고,

    무엇보다 float형과 double형의 차이가 꽤나 컸다.

    정확도가 double은 12자리, float 는 6자리까지 보장합니다 << 라고 한다...

    어쨌든, double형이 더욱 정확하게 수를 표현할 수 있기 때문에 오차를 줄이기 위해선 double형을 사용해야 했다.

     

    수업을 들을 땐 별 생각없이 넘어간 것들이었는데 이렇게 중요하게 쓰일 수도 있다니 ㅠㅠ

    앞으로 공부할 때는 뭐든 더욱 꼼꼼하게 짚고 넘어가야겠다.

     

    1
    2
    3
    4
    5
    6
    7
    8
    #include <stdio.h>
    int main(){
        int a, b;
        double result;
        scanf("%d%d"&a, &b);
        result = (double) a / (double) b;
        printf("%.9f\n", result);
    }
    cs

     

    '개인 공부 > 백준 문제풀이' 카테고리의 다른 글

    백준 10988번 : A * B  (0) 2020.07.15
    백준 1001번 : A - B  (0) 2020.07.15
    백준 1000번 : A + B  (0) 2020.07.15
    백준 10172번 - 개  (0) 2020.07.15
    백준 10171번 : 고양이  (0) 2020.07.10

    댓글

Designed by Tistory.