第二段代码没有输出结果是因为存在一个错误。在第二段代码中,将输入的日期范围分别存储在变量 a 和 b 中,但在判断是否符合条件时,使用了变量名 data 而非正确的变量名 date。
修改后的代码如下:
#include<iostream>
#include<string>
using namespace std;
int months[] = {
0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
};
int leap(int y) {
if(y % 400 == 0 || (y%4==0 && y%100 !=0))
return 1;
return 0;
}
int get_days(int y,int m) {
if(m == 2)
return 28 + leap(y);
return months[m];
}
bool check(int date) {
int m = date % 10000 /100;
int d = date %100;
int y = date /10000;
if(m<1 || m>12)
return false;
if(d<1 || d > get_days(y,m))
return false;
return true;
}
int main() {
int a,b;
cin >> a >> b;
int res = 0;
for(int i=1000;i<9999;i++) {
string s1 = to_string(i);
string s2(s1.rbegin(),s1.rend());
int date = stoi(s1 + s2);
if(date >= a && date <= b && check(date)) {
res++;
}
}
cout << res;
return 0;
}
现在,它会根据给定的日期范围输出结果了。
内容由零声教学AI助手提供,问题来源于学员提问




