본문 바로가기

백준 문제풀이/입출력과 사칙연산

백준 알고리즘 1008 / 단계별로 풀어보기 - 입출력과 사칙연산 9

 

안녕하세요. 슬슬 끝이 나는게 보입니다.

 

BOJ 1008번 이번에는 나눗셈인데요, 링크는 여기입니다.

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

 

1008번: A/B

두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

엥 나눗셈이네. 그냥 저번처럼 연산자만 / 로 바꿔주면 되는거 아니여?

하고 했는데 물론 안됩니다. 문제를 자세히 읽어봐야겠죠.

 

 

조금 까다롭게 되어있네요.

일단 정수형 변수 A,B 니까 int 형으로 선언을 해줍시다.

 

출력을 할 때, 절대오차 또는 상대오차가 10의 -9제곱 이하이면 되니,

소수점 9째자리까지 출력을 해주면 문제가 해결될 것 같습니다.

%f 가 부동 소수 출력인데, 앞에 .? 를 해주면 소수점 아래 ? 자리까지 출력합니다.

고로 %.9f 를 하면 소수점 아래 9자리까지 출력이 될 것입니다.

 

문제는 나눗셈을 하면 0.000000000이 나와버리는데, 이것은 int 형이기 때문입니다.

자료형 변환을 시켜줘야 int 형 값이 아닌, float 식으로 출력을 할 수 있겠죠.

변수명 앞에 (double) 을 붙여줍시다.

 

코드는 이렇게 되겠네요.

 

#include <stdio.h>

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

 

 

감사합니다.