我发现02-29过不了,求看哪里错了
#include<bits/stdc++.h>
using namespace std;
char a,b,c,d,e;
int ans,dy;
void hack_one() {
dy=(d-'0')*10+e-'0';
if(dy>31) ans++;
if(dy==0) ans++;
}
void hack_two() {
dy=(d-'0')*10+e-'0';
if(dy>30) ans++;
if(dy==0) ans++;
}
void hack_thee() {
dy=(d-'0')*10+e-'0';
if(dy>28) ans++;
if(dy==0) ans++;
}
void hack(int sum) {
ans++;
int cnt=sum/10,num=sum-(cnt*10);
if(num==2) num=12;
if(num=1||num==3||num==5||num==7||num==8||num==10||num==12)
hack_one();
else if(num==4||num==6||num==9||num==11)
hack_two();
else if(num==2) hack_thee();
}
int main() {
scanf("%c%c%c%c%c",&a,&b,&c,&d,&e);
int sum=(a-'0')*10+b-'0';
if(sum<=12) {
if(sum=1||sum==3||sum==5||sum==7||sum==8||sum==10||sum==12)
hack_one();//处理31天月份
else if(sum==4||sum==6||sum==9||sum==11)
hack_two();//处理30天月份
else if(sum==2) hack_thee();//处理2月;
}
else {
hack(sum);//处理月份>12的月份
}
cout<<ans;
return 0;
}