解题思路:
注意事项:
参考代码:
#include<stdio.h>
#include<math.h>
int monthday(int year,int month);
int gapday(int year1,int year2,int month2);
void print(int month,int gap,int year);
int main()
{
int year,month;
int gap,i,k;
char s1[100]="---------------------\n"
" Su Mo Tu We Th Fr Sa\n"
"---------------------";
char s2[50]="---------------------";
scanf("%d %d",&year,&month);
if(year>=2007)
{
gap=gapday(2007,year,month)%7;
gap=(gap+1)%7;
puts(s1);
print(month,gap,year);
putchar('\n');
puts(s2);
}
return 0;
}
int monthday(int year,int month)
{
if(month==2)
{
if(year%4==0&&year%100!=0||year%400==0) return 29;
else return 28;
}
else
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31; break;
default:
return 30; break;
}
}
int gapday(int year1,int year2,int month2)
{
int i,sum=0;
for(i=year1;i<year2;i++)
{
if(i%4==0&&i%100!=0||i%400==0) sum+=366;
else sum+=365;
}
for(i=1;i<month2;i++) sum+=monthday(year2,i);
return sum;
}
void print(int month,int gap,int year)
{
int i=gap,k;
while(i--)
{
printf(" ");
}
k=monthday(year,month);
for(i=1;i<=k;i++)
{
printf("%3d",i);
if(i%7==7-gap&&i<k)
{
putchar('\n');
}
}
}
0.0分
0 人评分
剔除相关数 (C语言代码)浏览:1924 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:623 |
简单的a+b (C语言代码)浏览:583 |
C语言训练-亲密数 (C语言代码)浏览:697 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:727 |
图形输出 (C语言代码)浏览:1422 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:612 |
震宇大神的杀毒软件 (C语言代码)浏览:1162 |
最好的,浏览:601 |
矩阵转置 (C语言代码)浏览:855 |