如何填充存储闰年的数组元素?从1804年生成100个闰年
生成100个闰年数组的实现方案
嘿,我懂你卡在哪了——你已经搭好了代码的基本框架,但还没完成核心的闰年数组填充逻辑对吧?别急,我来给你补全并解释清楚:
首先,按照你的需求:从1804年开始,每隔4年取一个闰年,生成100个元素的数组。这个逻辑其实很直接,我们可以用一个循环来逐个填充数组元素:
#include <iostream> using namespace std; int main() { // 你原有的变量可以保留,如果后续需要处理出生日期的话 int month = 0; int day = 0; int year = 0; // 定义存储100个闰年的数组 int leapyear[100]; // 起始闰年是1804 int start_year = 1804; // 循环填充数组:第i个元素是起始年份加4*i for (int i = 0; i < 100; i++) { leapyear[i] = start_year + i * 4; } // 可选:输出数组验证结果 cout << "生成的100个闰年:" << endl; for (int i = 0; i < 100; i++) { cout << leapyear[i] << " "; // 每10个换行,方便阅读 if ((i + 1) % 10 == 0) { cout << endl; } } // 你原本要写的出生日期输入逻辑可以继续在这里补充 cout << "\nPlease enter a date of birth in the form..." << endl; // 比如后续可以写cin >> year >> month >> day; 之类的逻辑 return 0; }
补充说明:
上面的代码是完全按照你“每隔4年添加一个”的需求来写的,但要注意真实的闰年规则其实更严格:
- 能被4整除但不能被100整除,或者
- 能被400整除的年份才是闰年
比如1900年虽然能被4整除,但它是整百年且不能被400整除,所以不是闰年。如果你需要严格符合真实闰年规则的数组,可以调整成下面的逻辑:
#include <iostream> using namespace std; int main() { int leapyear[100]; int current_year = 1804; int count = 0; // 循环找够100个符合规则的闰年 while (count < 100) { // 判断是否为真实闰年 if ((current_year % 4 == 0 && current_year % 100 != 0) || (current_year % 400 == 0)) { leapyear[count] = current_year; count++; } current_year++; } // 输出验证 cout << "严格符合规则的100个闰年:" << endl; for (int i = 0; i < 100; i++) { cout << leapyear[i] << " "; if ((i + 1) % 10 == 0) { cout << endl; } } return 0; }
你可以根据自己的实际需求选择对应的版本~
内容的提问来源于stack exchange,提问作者Sergio Gutierrez
相关产品推荐
相关产品推荐

