解题思路:无
注意事项:无
参考代码:
#include<bits/stdc++.h>
using namespace std;
int M[20]= {0,31,0,31,30,31,30,31,31,30,31,30,31};
bool isLeapyear(int y)
{
if((y%4==0&&y%100!=0)||y%400==0)
{
return true;
}
return false;
}
bool check(int y)
{
int m,d;
m = (y%10)*10+((y/10)%10);
d = ((y/100)%10)*10+((y/1000)%10);
if(m==0||d==0||m>12)
{
return false;
}
if(m==2)
{
if(isLeapyear(y)){ M[2]=29;}
else if(!isLeapyear(y)){M[2]=28;}
}
if(d<=M[m]){return true;}
else{return false;}
}
int ReYear(int y)
{
return (y%10)*1000+((y/10)%10)*100+((y/100)%10)*10+((y/1000)%10);
}
int main()
{
int y1,md1;
int y2,md2;
scanf("%4d%4d",&y1,&md1);
scanf("%4d%4d",&y2,&md2);
int ans = 0;
if(y1!=y2)
{
bool flag;
for(int i = y1+1; i<=y2-1 ; i++) {
int m,d; if(check(i)){ans++;}
}
if(check(y1)&&md1<=ReYear(y1)){ans++;}
if(check(y2)&&ReYear(y2)<=md2){ans++;}
}
else{
int m1,d1;
m1 = (y1%10)*10+((y1/10)%10);
d1 = ((y1/100)%10)*10+((y1/1000)%10);
if(check(y1)&&ReYear(y1)>=md1&&ReYear(y1)<=md2)
{
ans++;
}
}
cout<<ans<<endl;
return 0;
}
0.0分
2 人评分
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:584 |
C二级辅导-阶乘数列 (C语言代码)浏览:736 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:606 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:897 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:1482 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:701 |
【计算直线的交点数】 (C语言代码)浏览:1504 |
关于C语言变量位置的问题浏览:294 |
数组与指针的问题浏览:762 |
C语言训练-大、小写问题 (C语言代码)浏览:719 |