별걸 다 했었네요..
전 제목쓰면서 저게 뭔 프로그램인가 했어요..ㅋㅋ
저것도 단순한 거더라구요 ..ㅎ
1학년 때는 단순한 것만 하니깐요..
'날 수 구하기' 라는 것이 뭣이냐면!
|
일 수를 구하는 겁니다.
예를 들어 사용자가 10 을 입력을 했습니다.
10월 달이란 얘기가 됩니다.
그럼 10월은 31일 까지 있으므로 프로그램은 31을 출력하면 되지만
복병은 2월에 있습니다.
이 2월 때문에 과제가 나온 것 같아요..ㅋ
2월은 윤달이라고 해서 28일까지 있는 해와 29일 까지 있는 해가 있습니다.
사용자가 2월을 입력하게 되면 프로그램은 또 묻습니다.
바로 년도를 묻게 되는거죠..
윤년을 계산하여 해당하는 년도가 윤년이면 28일을 출력하고
해당하는 년도가 윤년이 아닌경우 29일을 출력하게 됩니다.
쉽게 말해 정리를 해 드릴께요 .ㅎ
정리같지 않겟지만..?ㅋ
① 사용자에게 몇월 생인지 묻는다.
② 2월생인지 확인한다.
②-1. 2월생이면 몇 년 생인지 확인한다.
②-2. 해당 연도가 윤년인지 확인한다.
②-2-1. 윤년이면 29일 출력.
②-2-2. 윤년이 아니면 28일 출력.
③ 1월, 3월, 5월, 7월, 8월, 10월, 12월인지 확인한다.
③-1. 맞으면 31일 출력.
④ 4월, 6월, 9월, 11월인지 확인한다.
④-1. 맞으면 30일 출력.
이런식으로 진행이 되는 겁니다 ..ㅋ
이제 알고리즘을 볼까요?!
근데 알고리즘이 좀.. 지저분 하더라구요..?
이번엔 도구를 쓰지 않고 한글에서 직접 작업한 것 같더라구요.....
자 어떤가요..
겁나 더럽죠..ㅋㅋㅋㅋ
그래도 알아 볼 수 는 있지 않은가요?ㅋㅋ
저만그래요?ㅋㅋㅋㅋ
알고리즘은 위에 있는 말을 도식화 한 것이기 때문에 또 설명 안해드려도 되겟죠?ㅋㅋ
그럼 소스투척할게요 ㅋㅋ
/*#include <stdio.h>
void main (void) { int month;//달 변수 int years=0;//연도 변수
printf("태어난 달을 입력하시오.\n");//태어난 달을 입력하시오 scanf("%d", &month);//달 입력
if (month < 1 || month > 12) //달이 일 이하또는 달이 12이상 { printf("1에서 12까지의 숫자로 다시 입력하시오.\n"); //1에서 12까지의 숫자로 다시 입력 } else if(month==2) //2월 일 경우 { printf("태어난 연도를 입력하시오.\n");//태어난 연도 입력를 입력하시오 scanf("%d", &years);//연도 입력 } else if(years <= 0 || years > 2009)//연도가 0보다작거나같거나 연도가 2009이상일 경우 { printf("연도를 다시 입력하시오.\n"); //연도 다시 입력 } else if(years%4==0&&years&100!=0||years%400==0) //연도가4의배수이고100의배수는아니되400의배수 { printf("29일 입니다.\n");//29일입니다 출력 } else //아니면 { printf("28일 입니다.\n");//28일 입니다 출력 }
if(years%4 == 0 && month==2) //년도가 4로 나눠지고 달이 2일일때 { printf("29일 입니다.\n");//29일 입니다 출력 } ................. |
이 프로그램 만들려면 윤년계산하는 방법 알고 게셔야 하는건 아시죠?!
윤년 계산은...
주석에서도 볼 수 있듯이..ㅋ
연도가 4의 배수이고 100의 배수는 아니면서 400의 배수가 되어야 윤년이 안됩니다.
그리고 두번째 조건은 연도가 4로 나누어지고 달이 2월일 때 윤년이 아닙니다!
윤년이 아닐 조건이네요 ㅋㅋㅋ
그리고 2009년까지만 해 놓은 이유는..
그래요... 2009년에 만들어서 그래요 ..ㅋㅋㅋㅋㅋㅋㅋ
신선한 과거네요 ㅋ
아무튼.. 저렇게 윤년이 아닌 조건을 넣고 만들었음.. 잘 나오나 테스트를 해 보아야 겟지요?!ㅋㅋ
윤년이 아닌 경우가 나왔네요 .ㅎ
2008년은 달력 보시면 알겠지만 29일로 되어있었습니다 .ㅎ
이 프로그램을 만든 2009년은 28일까지로 되어있으며 윤년인 해였습니다 .ㅎ
당시 프로그램의 제목은 사용자의 태어난 달을 기준으로 하는 거였네요 ㅎ
윤년 계산하는 법은 이제 아시겟죠?ㅋㅋㅋ
윤년 계산 부분은 코드에서 빼지 않았으니.. 도움이 되었음 해요ㅠㅠㅋㅋㅋ
'공부 > C언어' 카테고리의 다른 글
C언어 - swap(스왑)함수 와 달력 (0) | 2014.01.18 |
---|---|
C언어 - 달력 프로그램 만들기 (2) | 2014.01.18 |
C언어 - 숫자 야구 게임 프로그램 (0) | 2014.01.15 |
C언어 - 심리테스트 프로그램 (2) | 2014.01.15 |