题解 P5690 【[CSP-SJX2019]日期】

· · 题解

其实这一题虽然只是一题红题,但是,要注意的细节很多

这一题,实际上只要把十二个月都列出来,就是直接判断每一个月只要月份不合法,然后日期也不合法,就直接该两次,然后这个程序就结束了

接着只要判断有31天的月份,然后二月的时候判断一下,然后有三十天的时候判断一下只要日期不合法就改一次,就行了

CODE:

#include<bits/stdc++.h>
using namespace std;
char b;
int a,c;
int flag;
int main(){
    cin>>a>>b>>c;
    if(a>12||a==0)flag++;
    if(a>12||a==0){
        if(c>31)flag++;
    }
    if(a==1||a==3||a==5||a==7||a==8||a==10||a==12){
        if(c>31)flag++;
    }
    else if(a==2){
        if(c>28)flag++;
    }
    else if(a==4||a==6||a==9||a==11){
        if(c>30)flag++;
    }
    if(c==0)flag++;
    cout<<flag;
    return 0;
}