编程序实现如下功能

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

-------------------------

*/

相关文档
最新文档