這個程序怎么寫???各位大神
NextDate函數(shù)包含三個變量:month、day、year,函數(shù)的輸出為輸入日期后一天的日期。
例如,輸入2006年3月7日,則函數(shù)的輸出為2006年3月8日。要求輸入變量month、day、year均為整數(shù)值,并且滿足下列條件:
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函數(shù)都會產(chǎn)生一個輸出,指明相應(yīng)的變量超出取值范圍,比如“month的值不在12范圍中”。顯然還存在這大量的year、month、day的無效組合,NextDate函數(shù)將這些組合作為統(tǒng)一的輸出:“無效輸入日期”。
2016-11-30
2016-11-30
#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;
}