달력을 출력하는 프로그램을 만든적이 있더라구요 ㅎ
for 문과 while문을 사용해서 만들기가 과제 였습ㄴ디ㅏ .ㅎ
달력은 어떻게 만드는 줄은 아시죠?
당연히 윤년은 계산해야 합니다 .ㅎ
알고리즘이 생각보다 더럽더라구요..
전 다시 만들라면 못 만들듯..ㅋㅋㅋ
|
생각보다 잘 안보이네요 ..ㅎ
시작해서 연도 입력받고 달 입력받고
for문과 while문을 돌려서 윤년을 계산하고
달에 따라 30인지 31일인지 29일인지 28일인지를 계산해서 출력해 주는 프로그램이에요 ㅎ
젤 중요한 소스코드를 볼까나요/`
#include <stdio.h> int main(void) { int year; int month; int week; //변수 선언 int day; int yoon; int a,b,c=0; while(1) { printf ("알고싶은 연도를 입력하세요.\n");//연도 입력받기 scanf("%d",&year); printf ("알고싶은 달을 입력하세요.\n");//월수 입력받기 scanf("%d",&month); if(year%4==0&&year%100!=0||year%400==0)//윤년인지 확인함 { yoon = 1;//윤년이다 } else { yoon = 0;//윤년이 아니다 } if(month>12 || month == 0) //달이 12이상 또는 0일 경우 { printf("잘못된 달을 입력하셨습니다.\n\n");//잘못된 월을 입력했을때 } day = 0; for(a=1;a<=month;a++) // 달의 전달의 날짜를 더해줌 { if(a==2||a==4||a==6||a==8||a==9||a==11)//2 또는 4 또는 6 또는 8 또는 9 또는11 일 경우 { day+=31;//31을 더해줌 } if(a==5||a==7||a==10||a==12)//5또는7또는10또는12 일 경우 { day+=30;//30을 더해줌 } if(a==3) { if(yoon == 1) { day+=29; } else { day+=28; } }// 윤달에는 29을 아니면 28일을 더해줌 } week = (year*365 + year/4 - year/100 + year/400 -1 + day)%7; // 전체 날짜를 더하여 요일을 계산 if(month<13 && month != 0)//달이 13미만이고 0이 아닌경우 { printf ("%d년의 %d월의 달력입니다. \n\n",year,month);//몇년 몇월의 달력입니다 출력 printf(" 일 월 화 수 목 금 토\n");}//달력의 형식 if(month==4||month==6||month==9||month==11)//달이 4또는 6또는 9또는 11월인 경우 { for(a=0;a<week;a++)//주에 하나씩 더한다 { printf(" "); c++; }//처음 날의 공백 만큼 띄워주기 위해 만든것 for(b=1;b<=30;b++) { printf("%3d",b); if((c+b)%7==0) { printf("\n"); } }//1일부터 토요일이 되면 다음주로 넘기게 만들어줌 } if(month==2)//2월일 때 { if(yoon == 1)//윤년인 경우 { for(a=0;a<week;a++) { printf(" "); c++; }//처음 날의 공백을 메꿔주기 위한 것. for(b=1;b<=29;b++) { printf("%3d",b); if((c+b)%7==0) { printf("\n"); } }//윤년이기에 29일까지 해줌 } .............................
|
윤년이 아닌경우도 해주면 되요..ㅎ
소스도 더러운 듯 해요..
저걸 어케 만들었나 싶기도 하고..ㅋㅋㅋ
달이 4, 6, 9, 11 월인 경우를 따로 하고
1, 3, 5, 7, 8, 10, 12월인 경우를 따로 했더라구요.?
왜 그랬지?ㅋㅋㅋㅋㅋㅋㅋㅋㅋ
알고리즘 보면 알꺼에요 ㅋ
제 생각엔..
윤년이랑 무슨 관계가 있는듯..?ㅋㅋㅋ
아무튼..
달력은 저렇게 만들면 됩니다 ..ㅎ
겁나 잘만들었죠???ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
실은 지금은 못 만듬..
왜지..?
나이를 더 먹었는데..?
원래 초창기에 들어오는 지식이 많아서 잘 만드는 거에요 ..ㅋㅋㅋㅋ
아무튼.. 달력 프로그램은 여기까지 입니다!!ㅋㅋ
'공부 > C언어' 카테고리의 다른 글
C언어 - swap(스왑)함수 와 달력 (0) | 2014.01.18 |
---|---|
C언어 - 날 수 구하기 프로그램 (달의 총 일수 구하는 프로그램) (0) | 2014.01.15 |
C언어 - 숫자 야구 게임 프로그램 (0) | 2014.01.15 |
C언어 - 심리테스트 프로그램 (2) | 2014.01.15 |