88分WA#4求助
查看原帖
88分WA#4求助
1044970
LucAlva楼主2024/4/8 19:09
#include <bits/stdc++.h>
using namespace std;
int main(){
    int a,b,c;
    char a1;
    cin>>a>>a1>>b>>a1>>c;
    if(a>c) swap(a,c);//保证a(年份)为较小值
    int d=a,d1=0;
    if(d>=60) d1=19;
    else d1=20;//年份前两位
    if(b<13&&c>0&&b>0){
        if(b==1||b==3||b==5||b==7||b==8||b==10||b==12){
            if(c<32){
                cout<<d1;
                if(a<10) cout<<0;
                cout<<a<<'-';
                if(b<10) cout<<0;
                cout<<b<<'-';
                if(c<10) cout<<0;
                cout<<c<<"\n";
            }
        }
        else if(b==2){
            if(c<29||((((d1*100+a)%4==0&&(d1*100+a)%100!=0)||(d1*100+a)%400==0)&&c<30)){
                cout<<d1;
                if(a<10) cout<<0;
                cout<<a<<'-';
                if(b<10) cout<<0;
                cout<<b<<'-';
                if(c<10) cout<<0;
                cout<<c<<"\n";
            }
        }
        else if(c<31){
            cout<<d1;
            if(a<10) cout<<0;
            cout<<a<<'-';
            if(b<10) cout<<0;
            cout<<b<<'-';
            if(c<10) cout<<0;
            cout<<c<<"\n";
        }
    }//是否满足输出条件
    if(a!=c){//年份有两种可能
        swap(a,c);
        d=a;
        if(d>=60) d1=19;
        else d1=20;
        if(b>c) swap(b,c);//月份尽量小
        if(b<13&&c>0&&b>0){
    	    if(b==1||b==3||b==5||b==7||b==8||b==10||b==12){
	            if(c<32){
	                cout<<d1;
	                if(a<10) cout<<0;
	                cout<<a<<'-';
	                if(b<10) cout<<0;
	                cout<<b<<'-';
	                if(c<10) cout<<0;
	                cout<<c<<"\n";
	            }
	        }
	        else if(b==2){
	            if(c<29||((((d1*100+a)%4==0&&(d1*100+a)%100!=0)||(d1*100+a)%400==0)&&c<30)){
	                cout<<d1;
	                if(a<10) cout<<0;
	                cout<<a<<'-';
	                if(b<10) cout<<0;
	                cout<<b<<'-';
	                if(c<10) cout<<0;
	                cout<<c<<"\n";
	            }
	        }
	        else if(c<31){
	            cout<<d1;
	            if(a<10) cout<<0;
	            cout<<a<<'-';
	            if(b<10) cout<<0;
	            cout<<b<<'-';
	            if(c<10) cout<<0;
	            cout<<c<<"\n";
	        }
	    }
	    if(b!=c){//月、日有两种可能
			swap(b,c);
	        if(b<13&&c>0&&b>0){
		        if(b==1||b==3||b==5||b==7||b==8||b==10||b==12){
		            if(c<32){
		                cout<<d1;
		                if(a<10) cout<<0;
		                cout<<a<<'-';
		                if(b<10) cout<<0;
		                cout<<b<<'-';
		                if(c<10) cout<<0;
		                cout<<c<<"\n";
		            }
		        }
		        else if(b==2){
		            if(c<29||((((d1*100+a)%4==0&&(d1*100+a)%100!=0)||(d1*100+a)%400==0)&&c<30)){
		                cout<<d1;
		                if(a<10) cout<<0;
		                cout<<a<<'-';
		                if(b<10) cout<<0;
		                cout<<b<<'-';
		                if(c<10) cout<<0;
		                cout<<c<<"\n";
		            }
		        }
		        else if(c<31){
		            cout<<d1;
		            if(a<10) cout<<0;
		            cout<<a<<'-';
		            if(b<10) cout<<0;
		            cout<<b<<'-';
		            if(c<10) cout<<0;
		            cout<<c<<"\n";
		        }
	        }
	    }
    }
    return 0;
}

后来发现a,c一样但以c为年才可成立的日期不输出,改了一下76分

#include <bits/stdc++.h>
using namespace std;
int main(){
    int a,b,c;
    char a1;
    cin>>a>>a1>>b>>a1>>c;
    if(a>c) swap(a,c);
    int d=a,d1=0;
    if(d>=60) d1=19;
    else d1=20;
    if(b<13&&c>0&&b>0){
        if(b==1||b==3||b==5||b==7||b==8||b==10||b==12){
            if(c<32){
                cout<<d1;
                if(a<10) cout<<0;
                cout<<a<<'-';
                if(b<10) cout<<0;
                cout<<b<<'-';
                if(c<10) cout<<0;
                cout<<c<<"\n";
            }
        }
        else if(b==2){
            if(c<29||((((d1*100+a)%4==0&&(d1*100+a)%100!=0)||(d1*100+a)%400==0)&&c<30)){
                cout<<d1;
                if(a<10) cout<<0;
                cout<<a<<'-';
                if(b<10) cout<<0;
                cout<<b<<'-';
                if(c<10) cout<<0;
                cout<<c<<"\n";
            }
        }
        else if(c<31){
            cout<<d1;
            if(a<10) cout<<0;
            cout<<a<<'-';
            if(b<10) cout<<0;
            cout<<b<<'-';
            if(c<10) cout<<0;
            cout<<c<<"\n";
        }
    }
    if(a!=c){
        swap(a,c);
        d=a;
        if(d>=60) d1=19;
        else d1=20;
        if(b>c) swap(b,c);
        if(b<13&&c>0&&b>0){
    	    if(b==1||b==3||b==5||b==7||b==8||b==10||b==12){
	            if(c<32){
	                cout<<d1;
	                if(a<10) cout<<0;
	                cout<<a<<'-';
	                if(b<10) cout<<0;
	                cout<<b<<'-';
	                if(c<10) cout<<0;
	                cout<<c<<"\n";
	            }
	        }
	        else if(b==2){
	            if(c<29||((((d1*100+a)%4==0&&(d1*100+a)%100!=0)||(d1*100+a)%400==0)&&c<30)){
	                cout<<d1;
	                if(a<10) cout<<0;
	                cout<<a<<'-';
	                if(b<10) cout<<0;
	                cout<<b<<'-';
	                if(c<10) cout<<0;
	                cout<<c<<"\n";
	            }
	        }
	        else if(c<31){
	            cout<<d1;
	            if(a<10) cout<<0;
	            cout<<a<<'-';
	            if(b<10) cout<<0;
	            cout<<b<<'-';
	            if(c<10) cout<<0;
	            cout<<c<<"\n";
	        }
	    }
	    if(b!=c){
			swap(b,c);
	        if(b<13&&c>0&&b>0){
		        if(b==1||b==3||b==5||b==7||b==8||b==10||b==12){
		            if(c<32){
		                cout<<d1;
		                if(a<10) cout<<0;
		                cout<<a<<'-';
		                if(b<10) cout<<0;
		                cout<<b<<'-';
		                if(c<10) cout<<0;
		                cout<<c<<"\n";
		            }
		        }
		        else if(b==2){
		            if(c<29||((((d1*100+a)%4==0&&(d1*100+a)%100!=0)||(d1*100+a)%400==0)&&c<30)){
		                cout<<d1;
		                if(a<10) cout<<0;
		                cout<<a<<'-';
		                if(b<10) cout<<0;
		                cout<<b<<'-';
		                if(c<10) cout<<0;
		                cout<<c<<"\n";
		            }
		        }
		        else if(c<31){
		            cout<<d1;
		            if(a<10) cout<<0;
		            cout<<a<<'-';
		            if(b<10) cout<<0;
		            cout<<b<<'-';
		            if(c<10) cout<<0;
		            cout<<c<<"\n";
		        }
	        }
	    }
    }
    else if(b>0&&a>0&&a<13){
		d=c;
		if(d>=60) d1=19;
		else d1=20;
		swap(b,c);
		if(b<13&&c>0&&b>0){
			if(b==1||b==3||b==5||b==7||b==8||b==10||b==12){
				if(c<32){
				    cout<<d1;
				    if(a<10) cout<<0;
				    cout<<a<<'-';
				    if(b<10) cout<<0;
				    cout<<b<<'-';
				    if(c<10) cout<<0;
				    cout<<c<<"\n";
				}
			}
			else if(b==2){
			    if(c<29||((((d1*100+a)%4==0&&(d1*100+a)%100!=0)||(d1*100+a)%400==0)&&c<30)){
				    cout<<d1;
				    if(a<10) cout<<0;
				    cout<<a<<'-';
				    if(b<10) cout<<0;
				    cout<<b<<'-';
				    if(c<10) cout<<0;
				    cout<<c<<"\n";
			    }
		    }
			else if(c<31){
				cout<<d1;
				if(a<10) cout<<0;
				cout<<a<<'-';
				if(b<10) cout<<0;
				cout<<b<<'-';
				if(c<10) cout<<0;
				cout<<c<<"\n";
			}
		}
	}
    return 0;
}
2024/4/8 19:09
加载中...