本人觉得如下一改便可——
1.主函数中int year改为int year=1900。因为year还没有赋值,却在year = GetYearFromUser(year)调用中当作实参用了。
2.把函数PrintCalendar()中的int year改写在它的()中,即成为PrintCalendar(int year),并在主函数的调用中改写为PrintCalendar(year)。不带入年份打印哪年的日历?
3.把挂起来的闰年计算函数调用恢复,即把函数PrintCalendar()中的// DayPerMonth[1]=judgeLeapYear(year)一句前的//删除。
4.在函数fw()中的if(i<3)前加一句i++;。因为f的算式是计算1~12月份的周——日对应关系的,而你的i是0~11,是月份数组的下标,月月的值都差1。或者在PrintCalendar()中调用fw()时不要写fw(i,year)而写fw(i+1,year)也行。
本人以为这样就可以了,你试试……