解题思路:

注意事项:

参考代码:#include<stdio.h>
int main()
{
   int n, m, i, a, b, sum = 0;
   scanf("%d %d", &n, &m);
   
   if(n >= 2007)
   {
      printf("---------------------\n");
      printf(" Su Mo Tu We Th Fr Sa\n");
      printf("---------------------\n");
      for(i = 2007; i <n; i++)
      {
         if((i%4==0  || i%400 == 0 )&& i%100!=0)
         {
             sum += 366;
         }
         else
         {
            sum += 365;
         }
      }
      b = sum%7;
      switch(m)
      {
      case 1: a = 1;break;
      case 2: a = 4;break;
      case 3: a = 4;break;
      case 4: a = 7;break;
      case 5: a = 2;break;
      case 6: a = 5;break;
      case 7: a = 7;break;
      case 8: a = 3;break;
      case 9: a = 6;break;
      case 10: a = 1;break;
      case 11: a = 4;break;
      case 12: a = 6;break;
      }
      a = (a+b)%7;
      if(m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12)
      {
          for(i = 0; i < a; i++)
          {
              printf("   ");
          }
          for(i = 1; i <= 31; i++)
          {
             printf("%3d", i);
             a++;
             if(a%7 == 0)
             {
                 printf("\n");
             }
          }
          printf("\n---------------------\n");
          return 0;
      }
      if(m == 4 || m == 6 || m == 9 || m == 11)
      {
      // printf("%d", a);
         for(i = 0; i < a; i++)
         {
             printf("   ");
         }
         for(i = 1; i <= 30; i++)
         {
             printf("%3d", i);
             a++;
             if(a%7 == 0)
             {
                 printf("\n");
             }
         }
         printf("\n---------------------\n");
         return 0;
      }
      if(m == 2)
      {
         if((n%4==0  || n%400 == 0 )&& n%100!=0)
         {
             for(i = 0; i < a; i++)
             {
              printf("   ");
             }
             for(i = 1; i <= 29; i++)
             {
               printf("%3d", i);
               a++;
               if(a%7 == 0)
               {
                  printf("\n");
               }
             }
             printf("\n---------------------\n");
             return 0;
         }
         else
         {
              for(i = 0; i < a; i++)
              {
               printf("   ");
              }
              for(i = 1; i <= 28; i++)
              {
                printf("%3d", i);
                a++;
                if(a%7 == 0)
                {
                 printf("\n");
                }
              }
              printf("\n---------------------\n");
              return 0;
         }
      }
   }
   if(n < 2007)
   {
       return 0;
   }
   return 0;
}

点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论