#include <stdio.h> int fac(int year) //判断是否为闰年 { if(year%4==0 && year%100!=0 || year%400==0) return 1; else return 0; } int main() { int year; int i,j; int index; int peace; long sum=0; printf("请输入一个年份:"); scanf("%d",&year); int a[31]={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}; for(i=1;i<year;i++) { if(fac(i)) sum=sum+366; else sum=sum+365; } peace=(sum+1)%7; //判断第一天是星期几,peace是星期几的标志 for(i=1;i<=12;i++) { printf(" %d月\n",i); printf("日 一 二 三 四 五 六\n"); printf("---------------------\n"); for(j=0;j<peace;j++) printf(" "); if(i==1 || i==3 || i==5 || i==7 || i==8 || i==10 || i==12) index=31; else if(i==2 && fac(year)) index=29; else if(i==2 && !fac(year)) index=28; else index=30; for(j=0;j<index;j++) { printf("%2d ",a[j]); peace=(peace+1)%7; if(peace==0 && j!=index-1) putchar('\n'); } putchar('\n'); } return 0; }