作业帮 > 综合 > 作业

C语言程序设计;"已知2000年1月1日为星期六,请输入任一年的年份后,打印该年的年历" 怎么设计啊,速求老师

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/04/30 01:58:49
C语言程序设计;"已知2000年1月1日为星期六,请输入任一年的年份后,打印该年的年历" 怎么设计啊,速求老师
C语言程序设计;
C语言程序如下:#include<stdio.h>#define YES   1           /* 定义符号常数“是” */#define NO    0           /* 定义符号常数“否” *//* 函数 isleap(): 判断某年是否闰年 */int isleap(int year){      int leap = NO;      if((year%4==0 && year%100!=0 )|| year%400==0)          leap = YES;      return leap;}/* 函数 week_of_newyears_day(): 求元旦是星期几 */int week_of_newyears_day(int year){ int n = year-1900; n = n+(n-1)/4+1; n = n%7; return n;}int main(int argc,char *argv[]){ int year, month, day, weekday, len_of_month, i;     printf("\n请输入某年年份: "); scanf("%d",&year); printf("\n请输入某年1月1日:"); scanf("%d",&weekday); /*因为你的要求是已知2000年1月1日是星期六,所以这里不用week_of_newyears_day去求星期六了*/ /*weekday = week_of_newyears_day(year);    求元旦是星期几 */ printf("\n\n\n               %d年\n",year); /* 打印年份     */ for(month=1; month<=12;month=month+1) /* 打印12个月的月历 */ {  printf("\n%d月份\n",month);  printf("------------------------------------------------------\n");  printf("星期日  星期一  星期二  星期三  星期四  星期五  星期六\n");  printf("------------------------------------------------------\n");  for(i=0;i<weekday;i=i+1)       /* 找当月1日的打印位置 */   printf("        ");  if(month==4 || month== 6 || month==9 || month==11)   len_of_month = 30;  else if(month==2)  {   if(isleap(year))    len_of_month = 29;   else    len_of_month = 28;   }  else   len_of_month = 31;  for(day=1;day<=len_of_month;day=day+1)/* 打印当月日期 */  {   printf("   %2d   ",day);   weekday = weekday+1;   if(weekday==7)                /* 打满一星期应换行 */   {    weekday = 0;    printf("\n");   }  }  printf("\n");                      /* 打完一月应换行  */ } return 0;}运行效果如图