维生素C吃多了会上火-个人CSDN博文目录 2022蓝桥杯 目录 题目链接题解 题目链接 日期问题 题解 #include <iostream> using namespace std; int days[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; bool judge(int x){ int year = x/10000; int month = (x%10000)/100; int day = x%100; if(year%4==0&&year%100!=0||year%400==0) days[2]=29;//判断闰年记错了 else days[2]=28;//修改了全局变量一定要改回来 if(month<=12&&month>=1&&day<=days[month]&&day>=1) return true; else return false; } bool judge2(int year,int month,int day,int a,int b,int c){ if((year==a&&month==b&&day==c)||(year==c&&month==a&&day==b)||(year==c&&month==b&&day==a)) return true; else return false; } int main() { int a,b,c; scanf("%d/%d/%d",&a,&b,&c); for(int i=19600101;i<=20591231;i++){ if(judge(i)){ int year1 = i/10000; int year2 = year1%100; int month = (i%10000)/100; int day = i%100; if(judge2(year2,month,day,a,b,c)){ printf("%d-%02d-%02d\n",year1,month,day); } } } return 0; }