문제 번호 1054 --[기초-산술연산] 정수 두 개 입력받아 나눈 몫 출력하기

1054: [기초-산술연산] 정수 두 개 입력받아 나눈 몫 출력하기

시간 제한: 1 Sec  메모리 제한: 128 MB
제출: 795  해결 문제 수: 505
[제출][채점상황][게시판][:]

문제 설명

정수 두 개(a, b) 를 입력받아 a를 b로 나눈 몫을 출력하는 프로그램을 작성해보자.
(단, 입력되는 두 개의 정수 a, b의 범위는 0 ~ 2147483647이고, b는 0이 아니다.)

입력

정수 두 개(a, b)가 공백을 두고 입력된다.
(단, a, b의 범위는 0 ~  2147483647이고, b는 0이 아니다.)

출력

a를 b로 나누었을 때의 몫을 출력한다.

입력예시

5 3

출력예시

1

도움말

C언어에서 a/b 연산의 결과는 a를 b로 나눈 몫이 계산된다.



실수/정수, 

정수/실수, 

(float)정수/정수, 

정수/(float)정수 

의 연산은 나눈 결과가 실수로 계산된다.



(float)(정수/정수)는 정수/정수의 결과인 정수를 실수형(float)로 바꾸는 것으로, 정수가 실수 형태로 변환되는 것이니 주의한다.


예를 들어 (float)(1/2) 의 결과는 1/2의 결과는 0.5지만  정수/정수이기 때문에 결과는 정수 0이 되고 이를 float로 변환 하기 때문에 0.0이 된다.


맞게 하려면 (float)1/2 의 형태로 해서 1을 강제적으로 실수 1.0으로 변환 후 /2 를 하기 때문에 실수/정수의 연산이다. 따라서 0.5가 된다.



정수/실수... 에서 계산 결과가 실수형으로 바뀌는 것과 같이 계산 결과의 데이터형이 자동으로 바뀌는 것을 묵시적 (데이터)형 변환이라고 하고,


일반적으로 더 큰 타입(형)으로 변경된다.



"(데이터형)변수또는값" 과 같이 어떤 값이나 결과의 데이터형을 바꾸어주는 것을 명시적 (데이터)형 변환이라고 한다.



int a;

scanf("%d", &a);

printf("%f", (float)a);



와 같이 실행하면 정수로 저장되어있는 값을 실수형(float)으로 변환하여 출력한다.


출처

[제출][채점상황]