1. 목적
- 사칙 연산에 관해 이해한다.
2. 문제
- 날짜, 시간, 분, 초를 입력받아 전체 초를 계산하는 프로그램을 작성한다.
- 해당 단위 보다 큰 숫자를 받았을때 오류를 내고 다시 시작한다.
- 실행화면
일, 시간, 분, 초를 각각 순서대로 입력하세요 :3 4 62 67
잘못된 값을 입력하셨습니다. 다시 입력하세요.
=========================================================
일, 시간, 분, 초를 각각 순서대로 입력하세요 :3 4 50 28
3일 4시간 50분 28초는 276628초 입니다.
=========================================================
Press any key to continue
3. 이해
- 조건을 적용하여 반복 수행할수 있는가?
- 계산하여 출력할수 있는가?
4. 코드
#include <stdio.h>
int main()
{
int day, hour, min, sec;
start:
printf("=========================================================\n");
printf("일, 시간, 분, 초를 각각 순서대로 입력하세요 : ");
scanf("%d %d %d %d", &day, &hour, &min, &sec);
if(day > 365 || hour > 25 || hour > 24 || min > 60 || sec > 60)
{
printf("잘못된 값을 입력하셨습니다. 다시 입력하세요.\n");
goto start;
}
printf("%d일 %d시간 %d분 %d초는 %d초 입니다.\n", day, hour, min, sec, (day * 24 * 3600) + hour * 3600 + min * 60 + sec);
printf("=========================================================\n");
return 0;
}
5. 해설
- 특별한 조건이 없으므로 잘 쓰지 않는 goto 문을 써서 반복 수행 하였습니다.
- 다음 단위로 넘어갈수 있는 숫자를 수행했을때 다시 수행하라는 문장과 함께 start 레이블로
이동합니다.
- 날짜과 시간, 분에 따른 초계산을 하여 기존 초와 더하여 결과 값을 나타냅니다.
- goto 문은 조건없는 제어문이므로 문제가 생길수 있으므로 잘 쓰지 않습니다.
6. 참고
- http://www.winapi.co.kr/clec/cpp1/4-5-1.htm : goto 문 설명