전통문화대전망 - 오늘의 황력 - 누가 이 C 언어 만년력 절차의 각 단계의 의미를 설명해 줄 수 있습니까? 각 단계 후에 설명을 하나 써라.
누가 이 C 언어 만년력 절차의 각 단계의 의미를 설명해 줄 수 있습니까? 각 단계 후에 설명을 하나 써라.
Char month day [] = {3 1, 28, 3 1, 30, 3 1, 30,3/kk 월별 일수의 백분율 배열
Char monthdayleap [] = {3 1, 29,31,30,31,30,3 윤년 월별 일수 퍼센트
Char * weekdayname [] = {"일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"};
/* 키 가져오기 */
Char getkey ()
{
Char c, s [10];
Scanf ('%s', s); % 사용할 기능의 일련 번호를 입력합니다
C = s [0];
C 로 돌아가기 % ‧은 (는) 1.2.3.4 만 있기 때문에 입력한 일련 번호를 반환하므로 첫 번째 숫자만 반환됩니다.
}
Void 인쇄 탭 (intn)
{
While(n & gt;; 0)
{
Printf ("\ t"); 비어 있습니다
N-;
}
}
/* 윤년인지 판단한다 */
Char is leapy year(int y)
{
Return(y% 4 = = 0 & amp;; & ampy% 100! = 0 || y%400 == 0)? 1:0); 그해 수가 0 이고 나머지 100 이 0 이 아니거나 나머지 400 이 0 인 경우1을 반환합니다. 그렇지 않으면 0 을 반환합니다.
}
/* 요일 계산 */
Int WeekDay(int y, int m, int d)% y 예 연도 m 예 월 d 예 날짜.
{
Int week
If (m = =1) m =13;
If (m = = 2) m =14;
Week = (d+2 * m+3 * (m+1)/5+y+y/4-y/100+y 요일을 계산하는 공식
주로 돌아가기
}
/* 조회 주 */
Char queryweekday ()
{
Int y, m, d, week, c = 0;;
하다
{
Printf ("년, 월, 일 입력 (oooo oo oo oo) \ n"); 시간을 입력합니다
Scanf ('%d% d% d', & ampy & amp;; M & amp;; D);
주 = 근무일 (y, m, d); 이전 함수를 호출하여 요일을 계산합니다.
Printf ("%d 년% d 월% d 일은 %s 주째입니다. 질의를 계속하시겠습니까 (Y/N)? ",y, m, d, weekdayname [week]; 출력물
C = getkey (); 질의 여부를 입력합니다.
}
While (c = =' y' | | c = =' y');
C 로 돌아가기
}
/* 월 표시 */
Void show month(int y, int m)
{
Int d, dt, week
주 = 근무일 (y, m,1);
If(isLeapYear(y))
Dt = monthdayleap [(m-1)%12]; 윤년 알고리즘
기타
Dt = month day [(m-1)%12]; 평균 연간 알고리즘
For(d = 0;; D<7; D++)
{
Printf(“\ t% s ",weekdayname [d]);
}
Printf ("\ n");
인쇄 탭 (주);
For (d =1; D<= dtd++)
{
Printf(“\ t% 6d ",d);
If(WeekDay(y, m, d)= = 6)
Printf ("\ n");
}
Printf ("\ n");
}
/* 월 표시 */
Char printmonth ()
{
Int y, m, c = 0;;
하다
{
Printf ("연도 및 월 입력 (oooo oo) \ n");
Scanf ('%d% d', & ampy & amp;; M);
Printtab (3);
Printf ('%d 년 \t%d 월 \n', y, m);
쇼 몬트 (y, m); 함수를 호출하여 월을 계산합니다
Printf ("질의를 계속하시겠습니까 (Y/N)?" );
C = getkey ();
}
While (c = =' y' | | c = =' y');
C 로 돌아가기
}
/* 연도 표시 */
Char printyear ()
{
Int y, m, c = 0;;
하다
{
Printf ("연도를 입력하십시오 (oooo) \ n");
Scanf ('%d', & ampy);
Printtab (3);
Printf(“% d calendar \ n', y);
For (m =1; M<= 12; M++)
{
인쇄 탭 (4);
Printf ('%d 월 \n', m);
쇼 몬트 (y, m);
}
Printf ("\ n 질의를 계속하시겠습니까 (Y/N)? );
C = getkey ();
}
While (c = =' y' | | c = =' y');
C 로 돌아가기
}
/* 쿼리 종료 */
Char toexit ()
{
Char c;;
Printf ("정말 종료하시겠습니까 (Y/N)?" );
C = getkey ();
If (c = =' y' | | c = =' y')
1;
기타
0 을 반환합니다
}
/* 만년력 메인 인터페이스 조회 */
Char getmenu ()
{
Printf ("\ n * * * * * * * * * * * * * * * * * * * * * * * * * * * n");
Printf ('\ t 달력 쿼리기 \ n');
Printf ("1\ t 날짜를 기준으로 요일을 확인합니다. \ n");
Printf(“2 \ t 한 달 달력 표시 \ n ");
Printf(“3 \ t 1 년 달력 표시 \ n ");
Printf(“4 \ tExit \ n“); ");
Printf ("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * n");
Printf ("선택 (1-4):";
Return getkey ();
}
Int main(int argc, char *argv [])
{
Char doexit=0, choose
하다
{
/* 메뉴 가져오기 */
Choose = getmenu (); 함수를 호출하여 선택한 기능 항목을 가져옵니다.
/* 분류 처리 */
전환 (선택)
{
사례' 1':
Query weekday (); 주
깨뜨리다
사례 "2":
Printmonth (); 달
깨뜨리다
사례 "3":
Printyear (); 년
깨뜨리다
사례 "4":
Doexit = toexit (); 포기하다
깨뜨리다
기본값:
깨뜨리다
}
}
그리고 (! Do exit);
0 을 반환합니다
}
- 관련 기사
- 2022 년 음력 3 월 11 일은 픽업에 적합합니까? 이 날의 상징은 무엇입니까?
- 9 1 1 조회 달력이 정확합니까?
- 아침에 머리를 감으면 운에 영향을 줍니까?
- 당신은 2023 년 5 월 12 일에 새 집으로 이사할 수 있습니까? 오늘은 이사하기 좋은 날인가요?
- 5438 년 6 월 +2023 년 10 월 생길일 목록? 만년력 이번 달은 아이를 낳기에 좋은 날이다.
- 2022 년 집으로 이사한 가장 길한 날은 언제입니까?
- 사람을 먹는 괴물을 꿈꿨다
- 2022 년 음력 65438+2 월 18 은 어떤 날입니까?
- 제 차는 2009 년 6 월 65438+4 월에 보험을 들었는데, 오늘까지 벌써 3 개월이 되었습니다. 지금 차는 이미 수리되었고 부상자는 이미 퇴원했다. 어떻게 해야 할까요?
- 노란색 달력 및 색상