#include <iostream>
#include <cmath>
using std::cin;
using std::cout;
int main() {
int year, month, day, flag = 0;
cin >> year >> month >> day;
month = abs(month);
day = abs(day);
if (year == 0 || month == 0 || day == 0) {
cout << "NO";
}
if ((year % 100 != 0 && year % 4 == 0) || year % 400 == 0) {
flag = 1;
}
if ((month == 1 || month == 3 || month == 5 || month == 7 ||
month == 8 || month == 10 || month ==12) && day <= 31) {
cout << "YES";
} else if ((month == 4 || month == 6 || month == 9 || \
month == 11) && day <= 30) {
cout << "YES";
} else if (month == 2 && day <= 29 && flag == 1) {
cout << "YES";
} else if (month == 2 && day <= 28 && flag != 1) {
cout << "YES";
} else {
cout << "NO";
}
return 0;
}
写的真垃圾!
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
int year, month, day;
int temp;
cin >> year >> month >> day; //问题所在
year = abs(year);
month = abs(month);
day = abs(day);
int date[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if(((year % 100 != 0 && year % 4 == 0) || year % 400 == 0) && month == 2) {
date[2] += 1;
} else if (year <= 0 || month <= 0 || month > 12 || day <= 0) {
cout << "NO";
} else
cout << ((day <= date[month]) ? "YES" : "NO");
return 0;
}