下了 #1 数据发现输出正确,于是测试数据。
加了assert测试的代码:#1 AC
#include<iostream>
#include<cassert>
using namespace std;
const int day[14]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int main() {
int m,d,ans=0;
scanf("%d-%d",&m,&d);
assert(m==29&&d==31);//
if(m<=0) m=1,++ans;
else if(m>12) ++ans;
if(d<=0) d=(-d)%10,++ans;
else if(d>day[m]) ++ans;
cout<<ans;
return 0;
}
仅删去测试代码后:#1 #7 WA
#include<iostream>
// #include<cassert>
using namespace std;
const int day[14]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int main() {
int m,d,ans=0;
scanf("%d-%d",&m,&d);
// assert(m==29&&d==31);//
if(m<=0) m=1,++ans;
else if(m>12) ++ans;
if(d<=0) d=(-d)%10,++ans;
else if(d>day[m]) ++ans;
cout<<ans;
return 0;
}
两份代码仅注释不同。