📄 exam7-9.cpp
字号:
/*文件名:exam7_9.cpp*/
#include <stdio.h>
void printmonth(int m); /*函数声明*/
void printhead(int m); /*函数声明*/
int daysofmonth(int m); /*函数声明*/
int isleap(int y); /*函数声明*/
int firstday(int y); /*函数声明*/
int year,weekday; /*外部变量定义*/
main()
{
int i;
printf("输入年份:");
scanf("%d",&year);
weekday=firstday(year); /*weekday为year年份元月一日的星期号*/
printf("\n\n");
printf(" %d年\n",year);/*17个空格*/
for (i=1;i<=12;i++)
{
printmonth(i);
printf("\n");
}
printf("\n\n");
}
void printmonth(int m)
{
int i,days;
printhead(m);
days=daysofmonth(m);
for (i=1;i<=days;i++)
{
printf("%5d",i);
weekday=(weekday+1)%7;
if (weekday==0) /*打印下一个之前是否换行*/
{
printf("\n "); /*3个空格*/
}
}
}
void printhead(int m)
{
int i;
printf("\n%d月 日 一 二 三 四 五 六\n",m);
printf(" "); /*3个空格*/
for (i=0;i<weekday;i++)
printf(" "); /*5个空格*/
}
int daysofmonth(int m) /*返回year年m月的天数*/
{
switch(m)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:return 31;
case 4:
case 6:
case 9:
case 11:return 30;
case 2:if (isleap(year))
return 29;
else
return 28;
}
return 0;
}
int isleap(int y) /*判断y年是否为闰年*/
{
return ((y%4==0 && y%100!=0) || y%400==0);
}
int firstday(int y) /*从公元第1天为星期天算出y年第1天是星期几*/
{
long n=y*365;
int i;
for (i=1;i<y;i++) /*补上所有的闰年的天数*/
n+=isleap(i);
return n%7;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -