提醒大家:刷题要用devc++,因为考试的时候官方推荐的就是devc++, 有些新版语法可能会ce。
#include <iostream>//从初始日期到截至日期,保证了日期的先后性
#include <cstring>
using namespace std;
int days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int leap(int year){
if(year%4==0&&year%100!=0||year%400==0) return 1;
else return 0;
}
bool check(int year,int month,int day)
{
if(month<1||month>12) return false;
if(month==2){
int date=leap(year);
if(day<1||day>date+days[month]) return false;
}
else{
if(day<1||day>days[month]) return false;
}
return true;
}
int main()
{
int a,b,c;
scanf("%d/%d/%d",&a,&b,&c);
for(int i=19600101;i<=20591231;i++)
{
int year=i/10000,month=i/100%100,day=i%100;
if(check(year,month,day)){
if(year%100==a&&month==b&&day==c||
month==a&&day==b&&year%100==c||
day==a&&month==b&&year%100==c
)
printf("%d-%02d-%02d\n",year,month,day);
}
}
return 0;
}