你将需要判断这个日期在我们的公历体系内是否真实存在。如果存在则输出YES,否则输出NO。
测试程序给出的测试输入数据中,年、月、日都是正整数(也就是大于零的整数),均不大于 300030003000。
求帮看哪里有问题,提示通过三组,还差一组通不过...
#include <stdio.h>
int main(){
int year, month, day;
scanf("%d-%d-%d", &year, &month, &day);
if(year >=0 && year <= 3000){
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0 && year % 100 == 0){
if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12 ){
if(day > 0 && day <= 31){
printf("YES");
}else{
printf("NO");
}
}else if(month == 4 || month == 6 || month == 9 || month == 11){
if(day > 0 && day <= 30){
printf("YES");
}else{
printf("NO");
}
}else if(month == 2){
if(day > 0 && day <= 29){
printf("YES");
}else{
printf("NO");
}
}
}else{
if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12 ){
if(day > 0 && day <= 31){
printf("YES");
}else{
printf("NO");
}
}else if(month == 4 || month == 6 || month == 9 || month == 11){
if(day > 0 && day <= 30){
printf("YES");
}else{
printf("NO");
}
}else if(month == 2){
if(day > 0 && day <= 28){
printf("YES");
}else{
printf("NO");
}
}
}
}else{
printf("NO");
}
}
手边没有IDE,查错有点费事,写了一个
#include <stdio.h>