酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

编写程序,定义一个结构date,包含年、月、日三个整型。 计算该日期是该年的第几天并输出,如果输入的日期非法,则输出0

```cpp #include <iostream> struct Date { int year; int month; int day; }; // 计算给定日期是该年的第几天 int daysInYear(Date date) { int daysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 判断是否为闰年 if ((date.year % 4 == 0 && date.year % 100!= 0) || date.year % 400 == 0) { daysInMonth[1] = 29; } int totalDays = 0; for (int i = 0; i < date.month - 1; i++) { totalDays += daysInMonth[i]; } totalDays += date.day; // 检查日期是否合法 if (date.month < 1 || date.month > 12 || date.day < 1 || date.day > daysInMonth[date.month - 1]) { return 0; } return totalDays; } int main() { Date date; std::cout << "请输入年: "; std::cin >> date.year; std::cout << "请输入月: "; std::cin >> date.month; std::cout << "请输入日: "; std::cin >> date.day; int days = daysInYear(date); std::cout << "该日期是该年的第 " << days << " 天" << std::endl; return 0; } ``` 额外需要注意的逻辑点: 1. 处理闰年的判断要准确,包括能被 4 整除但不能被 100 整除,或者能被 400 整除的年份是闰年。 2. 输入数据的合法性检查要全面,包括月份和日期的范围。 3. 注意代码的可读性和可维护性,函数和变量的命名要清晰易懂。 [2024-12-08 15:44:00 | AI写代码神器 | 494点数解答]

相关提问