明依 @ 2019-03-12 14:19:48
#include<iostream>
using namespace std;
int main() {
char begin[8],end[8];
int i,first,last,a,b,ans=0;
cin>>begin>>end;
for(i=0; i<8; i++) cout<<begin[i];
cout<<endl;
for(i=0; i<8; i++) cout<<end[i];
cout<<endl;
first=(begin[0]-'0')*1000+(begin[1]-'0')*100+(begin[2]-'0')*10+begin[3]-'0';
last=(end[0]-'0')*1000+(end[1]-'0')*100+(end[2]-'0')*10+end[3]-'0';
cout<<first<<' '<<last<<endl;
for(i=first; i<=last; i++) {
a=(i%10)*10+(i/10)%10;
b=((i/100)%10)*10+i/1000;
if(i==first) {
if(((begin[4]-'0')*10+begin[5]-'0')>a) continue;//月份不在范围内
if(((begin[6]-'0')*10+begin[7]-'0')>b) continue;//日期不在范围内
}
if(i==last){
if(((end[4]-'0')*10+end[5]-'0')<a) continue;
if(((end[6]-'0')*10+end[7]-'0')<b) continue;
}
if(a<1||a>12) continue;
else {
if(a==1||a==3||a==5||a==7||a==8||a==10||a==12) {
if(b<1||b>31) continue;
else ans++;
} else if(a==4||a==6||a==9||a==11) {
if(b<1||b>30) continue;
else ans++;
} else {
if((!i%4&&i%100)||(!i%400)) {
if(b<1||b>29) continue;
else ans++;
} else {
if(b<1||b>28) continue;
else ans++;
}
}
}
}
cout<<ans;
return 0;
}
//洛殿佑我AC此题!!
我自己的程序中多写了个cout<<begin;和cout<<end;用来检验输入
所以说我想知道我的第一个输入中的点是什么鬼...
请问有大佬遇到过这种情况吗?有的话请帮助一下
by Little_Ming @ 2019-03-12 14:35:32
长度为char
,因为最后一个字符是'\0'
(表示字符串结束)。
by 明依 @ 2019-03-12 14:39:40
@Little_Ming谢谢大佬...果然是我的数组开小了
by 稚名真白 @ 2019-03-12 14:45:02
为何这么秀Qwq
by ThinkofBlank @ 2019-03-12 14:49:49
tql