#include<bits/stdc++.h> using namespace std; int rn(int c) { if((c%4==0 and c%100!=0) or c%400==0) return 1; return 0; } int main() { int a,b,ans=0,d[3000-1582]; scanf("%d%d",&a,&b); for(int i=a;i<=b;i++) { if(rn(i)) d[ans]=i; ans++; } printf("%d\n",ans); for(int i=0;i<ans;i++) { printf("%d ",d[i]); } return 0; }有什么问题?
时间: 2023-12-01 14:02:57 浏览: 47
C++万能头: bits/stdc++.h 下载
这段代码实现了一个简单的闰年判断函数 `rn(int c)` 和输出指定年份之间所有闰年的程序。其中,`d[3000-1582]` 是一个数组,用于存储闰年的年份。
这个程序在功能上没有问题,但有一些可以改进的地方:
1. 函数 `rn(int c)` 可以使用三目运算符来简化代码,如下所示:
```c++
int rn(int c) {
return ((c%4==0 and c%100!=0) or c%400==0) ? 1 : 0;
}
```
2. 在输出闰年的年份时,可以将循环和输出合并,避免使用额外的数组,如下所示:
```c++
for(int i=a;i<=b;i++) {
if(rn(i)) {
printf("%d ",i);
}
}
```
这样代码更加简洁。
阅读全文