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

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

#include <stdio.h> struct date { int year; int month; int day; }; int isLeapYear(int year) { if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { return 1; } else { return 0; } } int dayOfMonth(int month, int year) { if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) { return 31; } else if (month == 4 || month == 6 || month == 9 || month == 11) { return 30; } else if (month == 2) { if (isLeapYear(year)) { return 29; } else { return 28; } } else { return 0; } } int main() { struct date date; int totalDays = 0; printf("请输入年、月、日:"); scanf("%d %d %d", &date.year, &date.month, &date.day); if (date.year < 1 || date.month < 1 || date.month > 12 || date.day < 1 || date.day > dayOfMonth(date.month, date.year)) { printf("输入的日期非法\n"); } else { for (int i = 1; i < date.month; i++) { totalDays += dayOfMonth(i, date.year); } totalDays += date.day; printf("%d\n", totalDays); } return 0; } [2024-12-08 15:49:32 | AI写代码神器 | 814点数解答]

相关提问