使用 C++ 数组计算给定日期是当年第几天
```cpp #include <iostream> using namespace std; // 函数用于判断是否为闰年 bool isLeapYear(int year) { return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0); } // 计算这是今年的第几天 int dayOfYear(int year, int month, int day) { // 平年每月的天数 int daysInMonth[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 如果是闰年,2 月有 29 天 if (isLeapYear(year)) { daysInMonth[1] = 29; } int totalDays = 0; // 累加前面月份的天数 for (int i = 0; i < month - 1; i++) { totalDays += daysInMonth[i]; } // 加上当前月份的天数 totalDays += day; return totalDays; } int main() { int year, month, day; // 输入年月日 cin >> year >> month >> day; // 计算并输出这是今年的第几天 cout << dayOfYear(year, month, day) << endl; return 0; } ``` ### 代码解释: 1. **`isLeapYear` 函数**:用于判断给定的年份是否为闰年。根据闰年的规则:能被 4 整除但不能被 100 整除,或者能被 400 整除的年份是闰年。 2. **`dayOfYear` 函数**: - 定义了一个 `daysInMonth` 数组,存储平年每个月的天数。 - 如果是闰年,则将 2 月的天数修改为 29 天。 - 通过 `for` 循环累加前面月份的天数,最后加上当前月份的天数,得到这是今年的第几天。 3. **`main` 函数**: - 读取用户输入的年、月、日。 - 调用 `dayOfYear` 函数计算天数并输出结果。 ######[AI问答 | 561点数解答 | 2026-07-17 20:13:35]
- JSP 实现商品展示模块:分页、搜索、交互与美观界面全搞定!(字节豆包 | 19点数解答 | 2024-12-13 15:00:43)411
- PyCharm 中用 Selenium 编写自动化测试脚本,轻松登录 eShop 测试平台并点击“我的订单”(字节豆包 | 304点数解答 | 2024-11-06 15:38:30)508
- C++实现计算最少添加数字次数以匹配两个数组元素(字节豆包 | 714点数解答 | 2026-03-08 19:44:54)71
- C++ 代码实现自定义运算 x@y = x² + y² - xy 及 x@(x+y) 计算(DeepSeek | 215点数解答 | 2025-12-13 15:08:14)156
- C++ 实现根据输入正整数奇偶性计算偶数和或约数和(字节豆包 | 838点数解答 | 2026-02-28 20:23:59)136
- 解决代码WA问题:修改整数溢出问题后的计算代码(字节豆包 | 749点数解答 | 2026-05-10 16:20:03)68
- 修正代码解决计算 f(l, r) 和出现的 WA 问题(字节豆包 | 806点数解答 | 2026-05-10 16:21:37)64
- Winform开发:含验证与清空功能的注册页面实现(GPT | 5266点数解答 | 2024-06-14 16:04:40)525
- jQuery 实现姓名、邮箱、电话表单验证:成功显示消息,失败提示错误(百度文心 | 858点数解答 | 2024-10-26 23:36:38)474
- jQuery实现表单验证:姓名、邮箱、电话一个都不能少!(阿里通义 | 629点数解答 | 2024-10-29 09:16:19)406
- Go语言实现:动态用户Websocket服务端,生产者消息精准转发多消费者架构设计(字节豆包 | 559点数解答 | 2025-02-25 09:20:32)278
- Go语言实现Windows环境下高性能WebSocket服务端:生产者-消费者架构设计与代码解析(阿里通义 | 600点数解答 | 2025-02-25 09:21:10)248