⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exam7-9.cpp

📁 很好的C程序设计教程
💻 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 + -