鱼C论坛

 找回密码
 立即注册
查看: 1028|回复: 5

[已解决]帮帮小白吧

[复制链接]
发表于 2020-10-26 20:08:21 | 显示全部楼层 |阅读模式

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

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

x
#include<stdio.h>
int main(){
    int y,m,day_num;
    scanf("%d %d",&y,&m);
    printf(((y%4==0&&y%100!=0)||y%400==0)?"leap\n":"not leap\n");   
    if(m>2&&m<6) printf("spring\n");
    else if (m>5&&m<9) printf("summer\n");
    else if (m>8&&m<11) printf("autumn\n");
    else printf("winter\n");

     switch(m){               
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:day_num=31;break;  
            case 4:
            case 6:
            case 9:
            case 11:day_num=30;break;   
            case 2:if(y%4==0&&y%100!=0||y%400==0) day_num=29;   
                    else day_num=28;break;                    
        default:printf("error data");
    }
    printf("days=%d",day_num);            
    return 0;
    }
怎么改动下,输入年份 月份时(当月份不为1-12月),程序运行结果直接就是error data
最佳答案
2020-10-26 20:13:09
  1. #include<stdio.h>
  2. int main(){
  3.     int y,m,day_num;
  4.     scanf("%d %d",&y,&m);
  5.     if(m<1||m>12)
  6.     {
  7.          printf("error data");
  8.          exit(0);
  9.      }
  10.     printf(((y%4==0&&y%100!=0)||y%400==0)?"leap\n":"not leap\n");   
  11.     if(m>2&&m<6) printf("spring\n");
  12.     else if (m>5&&m<9) printf("summer\n");
  13.     else if (m>8&&m<11) printf("autumn\n");
  14.     else printf("winter\n");

  15.      switch(m){               
  16.             case 1:
  17.             case 3:
  18.             case 5:
  19.             case 7:
  20.             case 8:
  21.             case 10:
  22.             case 12:day_num=31;break;  
  23.             case 4:
  24.             case 6:
  25.             case 9:
  26.             case 11:day_num=30;break;   
  27.             case 2:if(y%4==0&&y%100!=0||y%400==0) day_num=29;   
  28.                     else day_num=28;break;                    
  29.         default:printf("error data");
  30.     }
  31.     printf("days=%d",day_num);            
  32.     return 0;
  33.     }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-10-26 20:13:09 | 显示全部楼层    本楼为最佳答案   
  1. #include<stdio.h>
  2. int main(){
  3.     int y,m,day_num;
  4.     scanf("%d %d",&y,&m);
  5.     if(m<1||m>12)
  6.     {
  7.          printf("error data");
  8.          exit(0);
  9.      }
  10.     printf(((y%4==0&&y%100!=0)||y%400==0)?"leap\n":"not leap\n");   
  11.     if(m>2&&m<6) printf("spring\n");
  12.     else if (m>5&&m<9) printf("summer\n");
  13.     else if (m>8&&m<11) printf("autumn\n");
  14.     else printf("winter\n");

  15.      switch(m){               
  16.             case 1:
  17.             case 3:
  18.             case 5:
  19.             case 7:
  20.             case 8:
  21.             case 10:
  22.             case 12:day_num=31;break;  
  23.             case 4:
  24.             case 6:
  25.             case 9:
  26.             case 11:day_num=30;break;   
  27.             case 2:if(y%4==0&&y%100!=0||y%400==0) day_num=29;   
  28.                     else day_num=28;break;                    
  29.         default:printf("error data");
  30.     }
  31.     printf("days=%d",day_num);            
  32.     return 0;
  33.     }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-26 20:16:14 | 显示全部楼层
我前些时候帮人写的一个小程序,给你参考



  1. // 编写一个计算天数的程序,用户从键盘中输入年、月、日,在屏幕中输出此日期是该年的第几天。

  2. #include<stdio.h>
  3. void main()
  4. {
  5.     int i,year,month,day,days = 0;
  6.     int array[12] = {31,29,31,30,31,30,31,31,30,31,30,31};
  7.     scanf("%d%d%d",&year,&month,&day);
  8.         if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
  9.         {
  10.             array[1] = 28;
  11.         }
  12.        
  13.         for (i = 1;i <= 12;i++)    // 计算上个月之前的天数
  14.         {
  15.             days += array[i - 1];
  16.                 if(month == i)
  17.                 {
  18.                     days -= array[i - 1];
  19.                         break;
  20.                 }
  21.         }
  22.     days += day;              // 计算今天之前的天数

  23.     printf("输入日期是今年的第 %d 天", days);
  24.     printf("\n");

  25. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-26 20:22:19 | 显示全部楼层

加的内个exit(0)是啥意思
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-26 20:24:22 | 显示全部楼层
936241151 发表于 2020-10-26 20:22
加的内个exit(0)是啥意思

就是退出整个运行阶段
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-26 20:25:22 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-2 10:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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