编程序实现如下功能
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
*编程序实现如下功能:输入任意一个年份和月份,按以下格式输出该月份的公历日历。
要求由程序计算出来该月份的1日是星期几,并用循环控制打印.
#include
main()
{
int y,m,d,r=0,i=1,m1,m2,d1,d2,d3,j,k;
printf("请输入年月\n");
scanf("%d%d",&y,&m);
while(i {if(i%4==0&&i%100!=0||i%400==0) r=r+1; else r=r+0; i=i+1; } d1=(y-1)*365+r; if (y%4==0&&y%100!=0||y%400==0) m2=29; else m2=28; switch(m) { case 1:d2=0;break; case 2:d2=31;break; case 3:d2=31+m2;break; case 4:d2=2*31+m2;break; case 5:d2=2*31+m2+30;break; case 6:d2=3*31+m2+30;break; case 7:d2=3*31+m2+2*30;break; case 8:d2=4*31+m2+2*30;break; case 10:d2=5*31+m2+3*30;break; case 11:d2=6*31+m2+3*30;break; case 12:d2=6*31+m2+4*30;break; } d=d1+d2; if (( m==1)||( m==3)||( m==5)||( m==7)||( m==8)||( m==10)||( m==12)) m1=31; else if (( m==4)||( m==6)||( m==9)||( m==11)) m1=30; else if ((y%4==0)&&(y%100!=0)||(y%400==0)) m1=29; else m1=28; d3=(d+1)%7; printf(" %d年日历\n",y); printf(" %d月\n",m); printf(" 日一二三四五六\n"); for(j=0;j printf(" "); for(k=1;k<=m1;k++) { printf("%5d",k); if((j+k)%7==0) printf("\n"); } printf ("\n"); } /*打印样例如下: 2012年日历 5月 ---------------------------------------- 日一二三四五六 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ------------------------- */