打表的代码有一丢丢长,请耐心看完,谢谢(一名蒟蒻)
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <cmath>
#include <cstring>
using namespace std;
int main()
{
int ha=0;
char m1,m2,w,d1,d2;
scanf("%c%c%c%c%c",&m1,&m2,&w,&d1,&d2);
int a=m1-'0';
int b=m2-'0';
int c=d1-'0';
int d=d2-'0';
if(b==0)
{
if(a*10+b==0&&c*10+d<=31)
ha+=1;
if(a*10+b==0&&c*10+d>31)
ha+=2;
if(a*10+b==10&&c*10+d<=31)
ha+=0;
if(a*10+b==10&&c*10+d>31)
ha+=1;
if(a*10+b>10&&c*10+d<=31)
ha+=1;
if(a*10+b>10&&c*10+d>31)
ha+=2;
}
if(b==1)
{
if(a*10+b==1&&c*10+d<=31)
ha+=0;
if(a*10+b==1&&c*10+d>31)
ha+=1;
if(a*10+b==11&&c*10+d<=30)
ha+=0;
if(a*10+b==11&&c*10+d>30)
ha+=1;
if(a*10+b>12&&c*10+d<=31)
ha+=1;
if(a*10+b>12&&c*10+d>31)
ha+=2;
}
if(b==2)
{
if(a*10+b==2&&c*10+d<=28)
ha+=0;
if(a*10+b==2&&c*10+d>28)
ha+=1;
if(a*10+b==12&&c*10+d<=31)
ha+=0;
if(a*10+b==12&&c*10+d>31)
ha+=1;
if(a*10+b>12&&c*10+d<=31)
ha+=1;
if(a*10+b>12&&c*10+d>31)
ha+=2;
}
if(b==3)
{
if(a*10+b<=12&&c*10+d<=31)
ha+=0;
if(a*10+b<=12&&c*10+d>31)
ha+=1;
if(a*10+b>12&&c*10+d<=31)
ha+=1;
if(a*10+b>12&&c*10+d>31)
ha+=2;
}
if(b==4)
{
if(a*10+b<=12&&c*10+d<=30)
ha+=0;
if(a*10+b<=12&&c*10+d>30)
ha+=1;
if(a*10+b>12&&c*10+d<=30)
ha+=1;
if(a*10+b>12&&c*10+d>30)
ha+=2;
}
if(b==5)
{
if(a*10+b<=12&&c*10+d<=31)
ha+=0;
if(a*10+b<=12&&c*10+d>31)
ha+=1;
if(a*10+b>12&&c*10+d<=31)
ha+=1;
if(a*10+b>12&&c*10+d>31)
ha+=2;
}
if(b==6)
{
if(a*10+b<=12&&c*10+d<=30)
ha+=0;
if(a*10+b<=12&&c*10+d>30)
ha+=1;
if(a*10+b>12&&c*10+d<=30)
ha+=1;
if(a*10+b>12&&c*10+d>30)
ha+=2;
}
if(b==7)
{
if(a*10+b<=12&&c*10+d<=31)
ha+=0;
if(a*10+b<=12&&c*10+d>31)
ha+=1;
if(a*10+b>12&&c*10+d<=31)
ha+=1;
if(a*10+b>12&&c*10+d>31)
ha+=2;
}
if(b==8)
{
if(a*10+b<=12&&c*10+d<=31)
ha+=0;
if(a*10+b<=12&&c*10+d>31)
ha+=1;
if(a*10+b>12&&c*10+d<=31)
ha+=1;
if(a*10+b>12&&c*10+d>31)
ha+=2;
}
if(b==9)
{
if(a*10+b<=12&&c*10+d<=30)
ha+=0;
if(a*10+b<=12&&c*10+d>30)
ha+=1;
if(a*10+b>12&&c*10+d<=30)
ha+=1;
if(a*10+b>12&&c*10+d>30)
ha+=2;
}
if(c*10+d==0)
ha+=1;
printf("%d",ha);
return 0;
}
真的是不知道哪个地方漏下了,就是90.。。。。。