c語言列印年歷-ag真人国际官网
① c語言萬年歷程序
#include"stdio.h"
#include"stdlib.h"
main( )
{
int year,month; //年、月
int firstday_year,firstday_month; //某年的第一天是星期幾,某年某月的第一天是星期幾(范圍是0~6,其中0代表星期日)
int isleapyear; //是否為閏年,0表示不是閏年,1表示是閏年
int i,d,y; //臨時變數
char yn; //yes no,程序是否要繼續
int days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
//days[1~12]存儲每個月有多少天,其中二月的天數是可變的(閏年29天,平年28天),這里初始化為28天
printf(" c語言簡單萬年歷\n"); //列印標題
xunhuan: //循環標號(可以通過goto跳轉到這里)
printf("請輸入年份: "); //提示輸入年份(0~9999)
scanf("%d",&year); //把輸入的年份賦值給變數year
printf("請輸入月份: "); //提示輸入月份(1~12)
scanf("%d",&month); //把輸入的月份賦值給變數month
y=year;
firstday_year=5*(y/4) (y%4)-(y/100) (y/400);//蔡勒公式(計算某年的第一天是星期幾)
isleapyear=(y%4==4&&y0!=100||y@0==0)?1:0;
//判斷是否為閏年
days[2]=(isleapyear==1)?29:28; //閏年二月29天,非閏年二月28天
for(i=1,d=0;i
firstday_month=(d firstday_year)%7; //當月的第一天是星期幾(0代表星期日)
printf("\n****************************************************\n");
printf("\t\t公元 %d 年 - 月",year,month); //列印年月
printf("\n****************************************************\n");
printf(" 星期日 星期一 星期二 星期三 星期四 星期五 星期六\n");
//列印星期表頭
for(i=0;i
for(d=1;d<=days[month];d ) //循環,從每個月的第一天開始列印
{
printf("}",d);
if(((d firstday_month)%7)==0 && d
}
printf("\n****************************************************\n");
printf("\n");
printf("是否繼續(y/n)?\n");
scanf("%c",&yn);
scanf("%c",&yn);
if(yn=='y' || yn=='y')
goto xunhuan;
}