计算x年到y年之间的对称日
思路:
先判断每年是不是闰年,然后计算每年每月每天,再将年月日三个数连在一起,进行判断是不是对称日,再输出这一天,在循环中设置变量来求和。
代码:
#include<stdio.h>
int main(){
int x,y,year=0,month=0,day=0;
int m=0,n=0,j=0,a=0,b=0,c=0,t=0;
scanf("%d%d",&x,&y);
for(year=x;year<=y;year++){
for(m=0,month=1;month<13;month++){
if(year%4==0&&year%100!=0||year%400==0){
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){
m=31;
}
else if(month==4||month==6||month==9||month==11){
m=30;
}
else if(month==2){
m=29;
}
}
else{
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){
m=31;
}
else if(month==4||month==6||month==9||month==11){
m=30;
}
else if(month==2){
m=28;
}
}
for(n=0,day=1;day<=m;day++){
n=year*10000+month*100+day;
t=n;
for(j=0,c=0;j<8;j++){
c=c*10+t%10;
t=t/10;
}
if(n==c){
a++;
printf("%d年%d月%d日 ",year,month,day);
}
}
}
}
printf("\n总共有%d天",a);
return 0;
}