소프트웨어/C
[2004년 기말 2번] 초 계산 - 나눗셈 / 나머지
카켈
2007. 2. 11. 04:08
1. 목적
- 나눗셈과 나머지를 이해한다.
- 시간에 대한 계산을 이해한다.
2. 문제 (점수 : 20 점)
- 초를 입력 받아 일/시간/분/초 로 분리하여 출력하는 프로그램을 작성하여라.
- 출력 화면
시간을 초단위로만 입력하세요 : 123456
123456초는 1일 10시간 17분 36초 입니다.
Press any key to continue
123456초는 1일 10시간 17분 36초 입니다.
Press any key to continue
3. 이해
- 시간을 원하는 단위로 맞출수 있는가?
- 나머지와 나눗셈 연산자를 이해 했는가?
4. 코드
#include <stdio.h>
int main()
{
long in = 0;
printf("시간을 초단위로만 입력하세요 : ");
scanf("%d", &in);
printf("%d초는 %d일 %d시간 %d분 %d초 입니다.\n", in, in / (3600*24), in % (3600*24) / 3600, in % 3600 / 60 , in % 60);
return 0;
}
5. 해설
- 기본적인 원리는 하루는 60 초 (=1분) / 3600 초 (=1시간) / 3600 * 24 초 (= 1일) 입니다. 따라서 원하는 시간 단위값을 얻고 싶으면 일수일 경우는 1일에 해당하는 초를 나눈 몫을 쓰면 되고 시간일 경우 초를 일수 로 나눈 나머지를 시간에 해당하는 초로 나누면 됩니다. 마찬가지로 분을 구하고자 한다면 시간에 해당하는 초를 나눈 나머지를 분에 해당하는 초의 크기로 나누면 되며, 초인 경우 같은 방법으로 해도 되나 위의 경우 그 밑 단위가 없으므로 60을 나눈 나머지로 썼습니다.
- 기초적인 계산이지만 천천히 이해하지 않으면 구현에 애로사항이 있습니다.
6. 참고
- http://www.winapi.co.kr/clec/cpp1/5-1-1.htm : 연산자