-
백준 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형을 사용해야 했다.
수업을 들을 땐 별 생각없이 넘어간 것들이었는데 이렇게 중요하게 쓰일 수도 있다니 ㅠㅠ
앞으로 공부할 때는 뭐든 더욱 꼼꼼하게 짚고 넘어가야겠다.
12345678#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