永发信息网

用c语言编写一个万年历程序

答案:1  悬赏:20  手机版
解决时间 2021-10-10 11:45
  • 提问者网友:萌卜娃娃
  • 2021-10-09 15:07
用c语言编写一个万年历程序
最佳答案
  • 五星知识达人网友:长青诗
  • 2021-10-09 16:22
#include <stdio.h> void main() { int i,j,temp,temp_i,day,year; long int yeardays; long int sumday(int year); int leapyear(int year); int month[]={0,31,28,31,30,31,30,31,31,30,31,30,31,29}; int everyday[6][14]; printf ("please enter a year:\n"); scanf("%d",&year); yeardays=sumday(year); for(temp=1;temp<=6;temp++) { getchar(); for(i=0;i<6;i++) for(j=0;j<14;j++) everyday[i][j]=0; switch(temp) { case 1:printf("\t 一月 %d\t\t 二月 %d\n",year,year);break; case 2:printf("\t 三月 %d\t\t 四月 %d\n",year,year);break; case 3:printf("\t 五月 %d\t\t 六月 %d\n",year,year);break; case 4:printf("\t 七月 %d\t\t 八月 %d\n",year,year);break; case 5:printf("\t 九月 %d\t\t 十月 %d\n",year,year);break; case 6:printf("\t 十一月 %d\t\t 十二月 %d\n",year,year);break; } printf("日 一 二 三 四 五 六 日 一 二 三 四 五 六 \n"); i=0;j=0; for(temp_i=0;temp_i<(yeardays%7);temp_i++) { everyday[0][j++]=0; } day=1; while(day<=month[2*temp-1]) { if(j%7==0) { j=0;i++; } everyday[i][j++]=day; day++; yeardays++; } i=0;j=7; for(temp_i=0;temp_i<(yeardays%7);temp_i++) { everyday[0][j++]=0; } day=1; if(leapyear(year)&&temp==1) while(day<=month[13]) { if(j%14==0) { j=7;i++; } everyday[i][j++]=day; day++; yeardays++; } else while(day<=month[2*temp]) { if (j%14==0) { j=7;i++; } everyday[i][j++]=day; day++; yeardays++; } for (i=0;i<6;i++) { for(j=0;j<14;j++) { if(everyday[i][j]!=0) printf("%-4d",everyday[i][j]); else printf(" "); if(j==6) printf(" "); } printf("\n"); } } } int leapyear(int year) { if((year%4==0&&year%100!=0)||year%400==0) return(1); else return (0); } long int sumday(int year) { int yearstart=1,leapsum=0; while(yearstart<year) { if(leapyear(yearstart)!=0) leapsum++; yearstart++; } return 366*leapsum+365*(year-leapsum); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯