最近帮朋友做一些C语言的练习题,期间遇到了个比较有意思的题目,意在考察模块化程序设计,大致要求如下:
电子万年历:
1、编写函数int isleapyear(int year);判某年是否为闰年,如该年为闰年返回1,否则返回0。编写主函数输入年份给出该年是否为闰年。
2、编写函数int dayofmonth(int year ,int month);计算某年某月有几天。主函数中输入任意的年和月,给出此年该月有几天。
3、编写万年历。请利用上述1、2已编写的函数和下边已提供的函数来完成:
(1)输入年打印出此年的日历。
(2)输入年和月打印给出此年该月的日历。
1 /*参考代码*/
2 int firstdayofyear(int year) /*求某年的第一天是星期几*/
3
4 { inti;5
6 long n,days=year;7
8 days=days*365; /*printf("\n%ld",days);*/
9
10 for(i=1;i
11
12 n=days%7;13
14 returnn;15
16 }17
18 int firstdayofmonth(int year, int month) /*求某年某月的第一天是星期*/
19
20 { int i,days=0, weekdays;21
22 weekdays=firstdayofyear(year);23
24 for(i=1;i
26 return (days+weekdays)%7;27