40分求助
查看原帖
40分求助
761125
Milthm楼主2022/11/13 14:48
#include<iostream>
#include<cstdio>
using namespace std;
string k[13]={"","JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"};
int y,m,d,ans;
char s[3];
int days(int nian,int m){
    if(nian%4==0&&nian%100!=0||nian%400==0){
        if(m==2)return 29;
    }
    if(m==2)return 28;
    if(m==4||m==6||m==9||m==11)return 30;
    return 31;
}
int days2(int nian,int m){
    if(nian%4==0){
        if(m==2)return 29;
    }
    if(m==2)return 28;
    if(m==4||m==6||m==9||m==11)return 30;
    return 31;
}
int main(){
    scanf("%d%3s%d",&d,&s,&y);
    for(int i=1;i<=12;i++){
        if(s==k[i]){
            m=i;break;
        }
    }
    for(int i=1;i<=y;i++){
        for(int j=1;j<=12;j++){
            for(int k=1;k<=31;k++){
                if(i==y&&k==d&&j==m){
                    goto R;
                }
                if(i<=1582&&j<=9){
                    if(k>days2(i,j))break;
                }
                else if(k>days(i,j))break;
                ans++;
            }
        }
    }
    R:if(y>=1582&&m>=10&&d>=15)ans-=10;
    cout<<ans;
    return 0;
}

样例全过了,大佬们帮我看看那里错了

2022/11/13 14:48
加载中...