满意答案
slz5888
2013.03.21
采纳率:56% 等级:11
已帮助:4493人
已经修改。另外要想理想运行,输入就用cin>>,scanf输入的会造成显示混乱
#include
#include
#include
using namespace std;
int IsLeapYear(int year)
{
if(year%4==0)
{
if(year%100==0&&year%400==0)
return 1;
else
return 0;
}
else
return 0;
}
int getlast_day(int month, int year)
{
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
break;
case 2:
if( IsLeapYear(year))
return 29;
else
return 28;
break;
default:
return 30; break;
}
}
int check_day(int last_day, int day)
{
if(day>last_day||day<=0)//invalid
return 0;
else
return 1;
}
void next_day(int year, int month, int day)
{
if(day+1<=getlast_day(month,year))
printf("Next Day: %d/%d/%d ",year,month,day+1);
else
{
if(month+1<=12)
printf("Next Day: %d/%d/%d ",year,month+1,1);
else
printf("Next Day: %d/%d/%d ",year+1,1,1);
}
}
void main()
{
int year,month,day;
char flag;
do
{
printf("Input Year\n");
scanf("%d",&year);
printf("Input Month\n");
scanf("%d",&month);
printf("Input Day\n");
scanf("%d",&day);
if(!check_day(getlast_day(month, year), day))
{
printf("Day Input Error. Input Please[1 - 31] integerInput Day\n");
scanf("%d",&day);
}
else
{
next_day(year, month, day);
printf("要终止程序吗?(Y/N) \n");
scanf("%c",&flag);
if(flag=='Y'||flag=='y')
break;
}
}
while(1);
system("pause");
}
00分享举报