lovelybird5200 2015-12-14 14:06 采纳率: 0%
浏览 3124

用c语言写三个函数分别判断年月日是否合法

年规定在1900-2050,月规定1-12,还要考虑是否闰年,闰年二月的天数是否正确,不正确则重新输入。本人实习生,整不出来领导要发飙了,这是一个通讯录内容的一部分,输入用户生日,1.name. 2.address. 3.birthyear. 4.birthmonth. 5.birthday

  • 写回答

2条回答 默认 最新

  • ysuwood 2015-12-14 14:39
    关注
     #include<stdio.h>
    
    int isYear(int y)
    {
        return y>=1900 && y<=2050;
    }
    
    int isMonth(int m)
    {
        return m>=1 && m<=12;
    }
    
    int isOK(int y, int m, int d)
    {
        if(y<1900 || y>2050) return 0;
        if(m<1 || m>12) return 0;
    
        switch(d)
        {
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            return d>=1 && d<=31;
        case 4:
        case 6:
        case 9:
        case 11:
            return d>=1 && d<=30;
        case 2:
            if((y/4==0&&y/100!=0)||(y/400==0)) return d>=1 && d<=29;
            else return d>=1 && d<=28;
        }
        return 0;
    }
    
    
    int main(void)
    {
        int y,m,d;
    
        do
        {
            printf("请输入年月日:");
            scanf("%d%d%d",&y,&m,&d);
        }while(isOK(y,m,d)!=1);
    
        printf("%d-%d-%d\n",y,m,d);
    
        return 0;
    }
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 MATLAB动图问题
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题