这个程序怎么写啊?各位大神

来源:5-14 综合练习

什么是JAVA

2016-11-29 23:19

NextDate函数包含三个变量:month、day、year,函数的输出为输入日期后一天的日期。

例如,输入2006年3月7日,则函数的输出为2006年3月8日。要求输入变量month、day、year均为整数值,并且满足下列条件:

1、1<=month<=12

2、1<=day<=31

3、1812<=year<=2012

1)有效等价类为:

M1={月份:1<=月份<=12}

D1={日期:1<=日期<=31}

Y1={年份:1812<=年<=2012}

2)若条件1~3中任何一个条件失效,则NextDate函数都会产生一个输出,指明相应的变量超出取值范围,比如“month的值不在12范围中”。显然还存在这大量的year、month、day的无效组合,NextDate函数将这些组合作为统一的输出:“无效输入日期”。


写回答 关注

2回答

  • 地表最强的9
    2016-11-30 20:25:40
    已采纳
    #include <stdio.h>
    #include <stdlib.h>
    int main(){
        int Month[12]={0,31,27,31,30,31,30,31,31,30,31,30,31};
        int year,month,day;
        scanf("%d%d%d",&year,&month,&day);
        //判断闰年
        if((year%4==0&&year%100!=0)||year%400==0)
            Month[2]=28;
        //判断是否超出范围
        if(year>2012||year<1812||month>12||month<1||day<1||day>Month[month])
            printf("无效输入日期");
        else{
            //是否为一年的最后一天
            if(month==12&&day==31){
                year+=1;
                printf("%d 1 1",year);
            }
            //是否为一个月的最后一天
            else if(day==Month[month]){
                month+=1;
                printf("%d %d 1",year,month);
            }
            else{
                day+=1;
                printf("%d %d %d",year,month,day);
            }
        }
        return 0;
    }


    什么是JAV...

    不过你这个程序只能运行一次就自动退出了,能加点条件吗,比如按1退出,按2继续

    2016-12-02 10:16:00

    共 5 条回复 >

  • 地表最强的9
    2016-11-30 20:25:00

    #include <stdio.h>
    #include <stdlib.h>
    int main(){

        int Month[12]={0,31,27,31,30,31,30,31,31,30,31,30,31};
        int year,month,day;
        scanf("%d%d%d",&year,&month,&day);
        //判断闰年
        if((year%4==0&&year%100!=0)||year%400==0)
            Month[2]=28;
        //判断是否超出范围
        if(year>2012||year<1812||month>12||month<1||day<1||day>Month[month])
            printf("无效输入日期");
        else{
            //是否为一年的最后一天
            if(month==12&&day==31){
                year+=1;
                printf("%d 1 1",year);
            }
            //是否为一个月的最后一天
            else if(day==Month[month]){
                month+=1;
                printf("%d %d 1",year,month);
            }
            else{
                day+=1;
                printf("%d %d %d",year,month,day);
            }
        }
        return 0;
    }


C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926020 学习 · 20793 问题

查看课程

相似问题