对于这个问题,首先想到后天就是日再加2,那么如果输入的这个日期是每个月的前些天,输出结果就是年,月,日+2.这么简单。但是如果输入的这个日期是月末的两天,那月份一定会加1,如果这个月是12月,那年份也要加1,月份变为1,日期也会改变。而且,每个月的天数都不一样,更需要注意的是2月还分闰年和平年,一个29天一个28天。
所以,解决这个问题首先要对所有可能的日期进行分类。
我初步分为:2月,12月,大月(31天),小月(30天)四个大类。其中2月再细分为28和29天。
其次,再对这些月再分为是否是月末的两天(牵扯到年月的改变)。
接下来看代码:
#include
#include
int main()
{
printf(“请输入年月日,以空格隔开,回车结束\n”);
int year,mounth,day;
scanf(“%d%d%d”,&year,&mounth,&day);
/*
//自定义的函数。用来做月份不需要变,只变日的输出。希望可以简化代码量
int out(year,mounth,day){
printf(“%d %d %d”,year,mounth,day+2);
}
*/
//先分离每年的2月
if(mounth==2){
//如果是闰年的2月,每月29天