<<endl;?weekday=f(year);?for(month=1;month<=12;month++)?{ cout<<"\n"<<month<<endl; cout<<"****************************"<<endl; cout<<"sunmontuewedthufrisat"<<endl; cout<<"****************************"<<endl; for(i=0;i<weekday;i=i+1)//找到每月1日所在的位置,所占的空格数 cout<<""; if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) monthday=31; elseif(month==2) { if(isleap(year)) monthday=29; else monthday=28; } else monthday=30; for(day=1;day<=monthday;day++) { if(day>9) cout<<day<<""; else cout<<day<<""; weekday++; if(weekday==7)//满一个星期换行{ weekday=0; cout<<endl; } } cout<<endl;//输出完一个月换行?}?return0;}运行效果如下:5.程序调试过程在这部分论述设计中遇到的主要困难及解决方案。(1)困难1:对闰年的判断.解决方案:year%4==0&&year%100!=0||year%400==0判断这一年是不是闰年。(2)困难2:对元旦为星期几的判断。解决方案:已知1900年元旦为星期一,用intn=year-1900;n=n+(n-1)/4+1;n=n%7;来判断每年的元旦是星期几。