이글은 과제 마감일 2010-03-23 에 공개 됩니다.
현 자료구조 교수님이 첫번째로 내주신 과제 입니다.
시간표현을 입력받아 초로 환산 하는 프로그램
- 입력은 시간,분,초 순서로 3개의 숫자를 커맨드 라인에서 입력 받는다.
- 입력'시간' 은 0~23, '분' 은 0~59, '초'는 0~59 값을 갖는다.
- 함수를 구현할것
실행 예) conv 14 20 55
출력 예) 51655 seconds
#include#include // atoi를 사용하기 위해 헤더 불러옴 int convert_to_second(int hour, int minute, int second); int main(int argc, char **argv) { int result; int h,m,s; /* *argv 를 사용할경우 인수를 한개밖에 넘겨받지 못하기 때문에 여러개를 받기위해 **argv 를 사용한다. command line 에서 conv 시간 분 초 를 입력하면 argc에는 숫자 4, argv[0]에는 실행파일 경로가, argv[1]에는 시간, argv[2]에는 분, argv[3]에는 초 가 입력된다. 단 이때 argv는 문자열이다. */ if(argc != 4) //올바른 입력이 아닐때는 프로그램을 종료한다. (넘겨 받은 인수 무조건 4가 아닐때) { printf("올바르지 않은 입력입니다. conv 시간 분 초 로 입력하세요\n"); return 0; } h = atoi(argv[1]); //문자열을 숫자 값으로 변환하기위해 atoi함수를 사용하였다. m = atoi(argv[2]); s = atoi(argv[3]); // 입력‘시간’는0~23, ‘분’은0~59, ‘초’는 0~59의 값을갖음 (제약 조건) if (h > 23) { printf("시간단위가 23시 보다 큽니다.\n"); return 0; } else if (m > 59) { printf("분단위가 59분 보다 큽니다.\n"); return 0; } else if (s > 59) { printf("초단위가 59초 보다 큽니다.\n"); return 0; } //함수 호출해서 결과값 result 변수에 담아줌 result = convert_to_second(h,m,s); printf("%d Seconds", result); } int convert_to_second(int hour, int minute, int second) { int temp; temp = hour*3600 + minute*60 + second; //1시간은 3600초, 1분은 60초이다. (초로 환산해야하니 모두 더해준다) return temp; // 반환된 값 }
'프로그래밍 > 자료구조/알고리즘' 카테고리의 다른 글
자바로 구현하는 버블소트 (Bubble sort) 알고리즘 (1) | 2014.08.18 |
---|---|
자바로 구현하는 링크드 리스트 (Singley LinkedList) (0) | 2014.07.22 |
문자열 뒤집기 (0) | 2011.10.15 |
날짜 변환 하기 (0) | 2011.10.15 |
변수값 입력받아 수행시간 측정하는 코드 (0) | 2011.10.15 |