鱼C论坛

 找回密码
 立即注册
查看: 2999|回复: 3

[已解决]您好,请问S1E17~18这题怎么写?

[复制链接]
发表于 2022-11-10 04:53:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include<stdio.h>

  2. int main()

  3. {
  4.         int year = 0;
  5.         int month = 1;
  6.         int day =0;
  7.         int flag = 0;
  8.        
  9.         printf("请输入一个年份:");
  10.         scanf("%d",year);
  11.         if((year % 4 == 0 && year % 100 != 0)||(year % 400 == 0))
  12.         {
  13.                 flag = 1;
  14.         }
  15.         //判断是否为闰年
  16.         for(month = 1;month < 13;month ++)
  17.         {
  18.                 switch(month)
  19.                 {
  20.                         case 1:
  21.                         case 3:
  22.                         case 5:
  23.                         case 7:
  24.                         case 8:
  25.                         case 10:
  26.                         case 12:
  27.                                 day = 31;
  28.                                 printf("%d月份:%d天",month,day);
  29.                                 continue;
  30.                         case 4:
  31.                         case 6:
  32.                         case 9:
  33.                         case 11:
  34.                                 day = 30;
  35.                                 printf("%d月份:%d天",month,day);
  36.                                 continue;
  37.                         case 2:
  38.                                 if(flag)
  39.                                 {
  40.                                         day = 29;
  41.                                         printf("%d月份:%d天",month,day);
  42.                                         continue;
  43.                                 }
  44.                                 else
  45.                                 {
  46.                                         day = 28;
  47.                                         printf("%d月份:%d天",month,day);
  48.                                         continue;
  49.                                 }
  50.                 }
  51.                
  52.         }
  53.        
  54.        
  55.         return 0;
  56. }
复制代码

以上是我写的代码,请问哪里出现了问题?
最佳答案
2022-11-10 10:29:31
本帖最后由 jackz007 于 2022-11-10 10:36 编辑
  1. #include<stdio.h>

  2. int main()

  3. {
  4.         int year = 0  ;
  5.         int month = 1 ;
  6.         int day = 0   ;
  7.         int flag = 0  ;
  8.         
  9.         printf("请输入一个年份:") ;
  10.         scanf("%d", & year)        ;     // 【致命错误,修改】
  11.         if((year % 4 == 0 && year % 100 != 0)||(year % 400 == 0))
  12.         {
  13.                 flag = 1;
  14.         }
  15.         //判断是否为闰年
  16.         for(month = 1;month < 13;month ++)
  17.         {
  18.                 switch(month)
  19.                 {
  20.                         case 1:
  21.                         case 3:
  22.                         case 5:
  23.                         case 7:
  24.                         case 8:
  25.                         case 10:
  26.                         case 12:
  27.                                 day = 31;
  28.                                 printf("%2d月份:%d天\n",month,day);   // 【修改】
  29.                                 continue;
  30.                         case 4:
  31.                         case 6:
  32.                         case 9:
  33.                         case 11:
  34.                                 day = 30;
  35.                                 printf("%2d月份:%d天\n",month,day);   // 【修改】
  36.                                 continue;
  37.                         case 2:
  38.                                 if(flag)
  39.                                 {
  40.                                         day = 29;
  41.                                         printf("%2d月份:%d天\n",month,day);   // 【修改】
  42.                                         continue;
  43.                                 }
  44.                                 else
  45.                                 {
  46.                                         day = 28;
  47.                                         printf("%2d月份:%d天\n",month,day);   // 【修改】
  48.                                         continue;
  49.                                 }
  50.                 }
  51.                
  52.         }
  53.         return 0;
  54. }
复制代码

        下面是我写的代码,谨供楼主参考
  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.         int a[] = {31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31} , d , m , y ;
  5.         printf("请输入一个年份:")                                                        ;
  6.         scanf("%d" , & y)                                                                 ;
  7.         for(m = 0 ; m < 12 ; m ++) {
  8.                 d = a[m]                                                                  ;
  9.                 if(m == 1 && (! (y % 4) && y % 100) || ! (y % 400)) d ++                  ;
  10.                 printf("%2d月份:%d天\n" , m + 1 , d)                                     ;
  11.         }
  12. }
复制代码
屏幕截图_20221110_045222.png
屏幕截图_20221110_045211.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-11-10 08:31:57 | 显示全部楼层
  1. #include<stdio.h>

  2. int main()

  3. {
  4.         int year = 0;
  5.         int month = 1;
  6.         int day =0;
  7.         int flag = 0;
  8.         
  9.         printf("请输入一个年份:");
  10.         scanf("%d",&year); // 少了&
  11.         if((year % 4 == 0 && year % 100 != 0)||(year % 400 == 0))
  12.         {
  13.                 flag = 1;
  14.         }
  15.         //判断是否为闰年
  16.         for(month = 1;month < 13;month ++)
  17.         {
  18.                         //下面打印的时候少了换行,而且月份需要右对齐
  19.                 switch(month)
  20.                 {
  21.                         case 1:
  22.                         case 3:
  23.                         case 5:
  24.                         case 7:
  25.                         case 8:
  26.                         case 10:
  27.                         case 12:
  28.                                 day = 31;
  29.                                 printf("%2d月份:%d天\n",month,day);
  30.                                 continue;
  31.                         case 4:
  32.                         case 6:
  33.                         case 9:
  34.                         case 11:
  35.                                 day = 30;
  36.                                 printf("%2d月份:%d天\n",month,day);
  37.                                 continue;
  38.                         case 2:
  39.                                 if(flag)
  40.                                 {
  41.                                         day = 29;
  42.                                         printf("%2d月份:%d天\n",month,day);
  43.                                         continue;
  44.                                 }
  45.                                 else
  46.                                 {
  47.                                         day = 28;
  48.                                         printf("%2d月份:%d天\n",month,day);
  49.                                         continue;
  50.                                 }
  51.                 }
  52.         }
  53.         
  54.         
  55.         return 0;
  56. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-10 10:29:31 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2022-11-10 10:36 编辑
  1. #include<stdio.h>

  2. int main()

  3. {
  4.         int year = 0  ;
  5.         int month = 1 ;
  6.         int day = 0   ;
  7.         int flag = 0  ;
  8.         
  9.         printf("请输入一个年份:") ;
  10.         scanf("%d", & year)        ;     // 【致命错误,修改】
  11.         if((year % 4 == 0 && year % 100 != 0)||(year % 400 == 0))
  12.         {
  13.                 flag = 1;
  14.         }
  15.         //判断是否为闰年
  16.         for(month = 1;month < 13;month ++)
  17.         {
  18.                 switch(month)
  19.                 {
  20.                         case 1:
  21.                         case 3:
  22.                         case 5:
  23.                         case 7:
  24.                         case 8:
  25.                         case 10:
  26.                         case 12:
  27.                                 day = 31;
  28.                                 printf("%2d月份:%d天\n",month,day);   // 【修改】
  29.                                 continue;
  30.                         case 4:
  31.                         case 6:
  32.                         case 9:
  33.                         case 11:
  34.                                 day = 30;
  35.                                 printf("%2d月份:%d天\n",month,day);   // 【修改】
  36.                                 continue;
  37.                         case 2:
  38.                                 if(flag)
  39.                                 {
  40.                                         day = 29;
  41.                                         printf("%2d月份:%d天\n",month,day);   // 【修改】
  42.                                         continue;
  43.                                 }
  44.                                 else
  45.                                 {
  46.                                         day = 28;
  47.                                         printf("%2d月份:%d天\n",month,day);   // 【修改】
  48.                                         continue;
  49.                                 }
  50.                 }
  51.                
  52.         }
  53.         return 0;
  54. }
复制代码

        下面是我写的代码,谨供楼主参考
  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.         int a[] = {31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31} , d , m , y ;
  5.         printf("请输入一个年份:")                                                        ;
  6.         scanf("%d" , & y)                                                                 ;
  7.         for(m = 0 ; m < 12 ; m ++) {
  8.                 d = a[m]                                                                  ;
  9.                 if(m == 1 && (! (y % 4) && y % 100) || ! (y % 400)) d ++                  ;
  10.                 printf("%2d月份:%d天\n" , m + 1 , d)                                     ;
  11.         }
  12. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-10 12:08:09 | 显示全部楼层
jackz007 发表于 2022-11-10 10:29
下面是我写的代码,谨供楼主参考

膜拜大佬
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-14 18:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表