作业帮 > 综合 > 作业

C语言 已知某年一月一日是星期几,按照SUN MON TUS WED THU FRI STA的格式输出该年某个月的月历

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/06/16 00:02:21
C语言 已知某年一月一日是星期几,按照SUN MON TUS WED THU FRI STA的格式输出该年某个月的月历
(即输入XXXX/1/1is星期n,x mouth,输出x月的月历)C语言编程 用循环和switch
以下是我以前写的一个万年历系统的一个模块:输入某一年份,然后显示出全年日历,你可以在其中修改满足你的要求-----------#include <stdio.h>void main(void){ int year,month,day; //int month=1; int x;//定义该月的天数 int sum,leap,result; int a[42]={0}; printf("====>请输入年份:"); scanf("%d",&year); for(month=1;month<13;month++){  int a[42]={0};  if(month==4||month==6||month==9||month==11)    x=30;   else if(month==2)   {   if(year%400==0||(year%4==0&&year%100!=0))     x=29;    else     x=28;  }   else    x=31;  day=1;    switch(month)  {  case 1:{sum=day;     break;}  case 2:{sum=31+day;  break;}  case 3:{sum=59+day;  break;}  case 4:{sum=90+day;  break;}  case 5:{sum=120+day; break;}  case 6:{sum=151+day; break;}  case 7:{sum=181+day; break;}  case 8:{sum=212+day; break;}  case 9:{sum=243+day; break;}  case 10:{sum=273+day;break;}  case 11:{sum=304+day;break;}  case 12:{sum=334+day;break;}  }    if(year%400==0||(year%4==0&&year%100!=0))   leap=1;  else   leap=0;  if(leap==1&&month>2)//如果是闰年并且月份大于2,总天数应该加一天   sum=sum+1;    result=(year-1+(year-1)/4-(year-1)/100+(year-1)/400+sum)%7;  //写入数组  a[result]=1;//定位该月第一天的位置  for(int i=0;i<x;i++)   a[result+i]=i+1;  //输出结果  printf("\n%d %d :",year,month);  printf(" SUN MON TUE WEN THU FRI SAT\n" );  printf("\n");  for(i=0;i<6;i++)//格式化输出,一维变二维输出  {    printf("\t");   for(int j=0;j<7;j++)    printf("%4d",a[7*i+j]);   printf("\n");  } }}