问答详情
源自:5-14 综合练习

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

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函数将这些组合作为统一的输出:“无效输入日期”。


提问者:什么是JAVA 2016-11-29 23:19

个回答

  • 地表最强的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;
    }


  • 地表最强的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;
    }