日期问题
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int days[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
bool check(int y, int m, int d) {//判断日期是否合法
if (m == 0 || m > 12) return false;
if (d == 0)return false;
if (m != 2 && d > days[m]) return false;
if (m == 2) {
int lerp = y % 100 != 0 && y % 4 == 0 || y % 400 == 0;//闰年lerp=1,平年0
if (d > 28 + lerp) return false;
}
return true;
}
int main() {
int a, b, c;
scanf_s("%d/%d/%d", &a, &b, &c);
for (int i = 19600101; i <= 20591231; i++) {//枚举1960.01.01-2059.12.31所有日期
int y = i / 10000 ;
int m = i / 1000000 % 100;
int d = i % 100;
if (check(y, m, d)) {//判断日期是否合法
if (((y % 100) == a && m == b && d == c) || (d == a && m == b && (y % 100) == c) || (m == a && d == b &&(y % 100)== c))
{
printf("%d-%02d-%02d\n", y, m, d);
}
}
}
return 0;
}
不知道错哪里了,没有输出