为了账号安全,请及时绑定邮箱和手机立即绑定

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

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 回答

#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;
}


0 回复 有任何疑惑可以回复我~
#1

燕落于林

第四行的 Month[12] 12应该改成13吧
2016-12-01 回复 有任何疑惑可以回复我~
#2

燕落于林

还有二月是28天或29天
2016-12-01 回复 有任何疑惑可以回复我~
#3

什么是JAVA 提问者

非常感谢!
2016-12-02 回复 有任何疑惑可以回复我~
#4

什么是JAVA 提问者 回复 燕落于林

嗯,没错
2016-12-02 回复 有任何疑惑可以回复我~
#5

什么是JAVA 提问者

不过你这个程序只能运行一次就自动退出了,能加点条件吗,比如按1退出,按2继续
2016-12-02 回复 有任何疑惑可以回复我~
查看2条回复

#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;
}


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信