FEATURED · 精选文章

C语言综合练习Day9

发布时间 / 2026/8/10 12:10:35
来源 / 创域科博编辑部
栏目 / 资讯中心
C语言综合练习Day9 练习用函数打印日历步骤一判断年份平年和闰年的二月份天数不一样导致总天数不一样。年份能被4整除且不能被100整除或年份能被400整除都可判断为闰年int isleapYear(int year) { int ret 0; if(year%40 year%100!0 || year%4000) { ret 366; //闰年一年有366天 }else { ret 365; } return ret; }步骤二判断每个月份的天数1 3 5 7 8 10 12月有31天4 6 9 11 月有30天2月 平年有28天 闰年有29天#includestdio.h int getMonthDays(int year,int month) { int ret; if(month !2 month4 || month6 || month9 || month11) { ret 30; } else if(month!2 month1 ||month3||month5||month7||month8||month10||m12) { ret 31; }else if(month2 isleapYear(year) 366) { ret 29; }else if(month2 isleapYear(year) 365) { ret 28; } return ret; }步骤三 getAllDays函数用于计算从基准年份1990年到指定年份和月份之间的总天数包括闰年和平年的天数累加。int getAllDays(int year,int month) { int i 0; int days 0; for(i 1990;iyear;i) { days days isleapYear(i); } for(i 1;imonth;i) { days getMonthDays(i) days; } return days; }步骤四判断输入的年份月份的1号是星期几调用getAllDays(year, month)计算从某个固定日期如1970 年 1 月 1 日到输入的年月 1 日的总天数。使用% 7取模运算将总天数转换为星期几的索引int getWeekDay(int year,int month) { int week; week getAllDays(year,month)%7; return week; }步骤五打印函数void printCal(int year,int month) { printf(%5d%2d\n,year,month); printf(mon tues wed thur fri sut sun\n); int i; for(i 0;igetWeekDay(year,month);i) { printf( ); } for(i0;igetMonthDays(year,month);i) { printf(%2d,i); } }步骤六头文件外部声明打印函数#ifndef _CAL_H_ #define _CAL_H_ #includestdio.h extern void printCal(int year,int Month); #endif步骤七添加主函数#includestdio.h #includework9.h int main(void) { int year, month; printf(请输入要查询日历的年份和月数:); scanf(%d %d, year, month); printCal(year, month); return 0; }
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻