请你用c语言编写函数,根据所给年月日,计算出该日期是该年的第几天(注意考虑闰年),满足以下两种情况之一的为闰年:1.年份是四的倍数且不是一百的倍数。2.年份是四百的倍数。 【输入形式】 输入年月日,以空格隔开。 【输出形式】 输出“输入日期是当年的第n天"
时间: 2024-03-17 16:47:45 浏览: 87
好的,以下是 C 语言代码实现:
```c
#include <stdio.h>
int is_leap_year(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
int days_of_year(int year, int month, int day) {
int days_in_month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 每个月的天数
if (is_leap_year(year)) {
days_in_month[1] = 29; // 修改 2 月的天数为 29 天
}
int days = 0;
for (int i = 0; i < month - 1; i++) {
days += days_in_month[i];
}
days += day; // 计算该日期是该年的第几天
return days;
}
int main() {
int year, month, day;
scanf("%d %d %d", &year, &month, &day);
int days = days_of_year(year, month, day);
printf("输入日期是当年的第%d天\n", days);
return 0;
}
```
在上面的代码中,`is_leap_year` 函数用于判断给定的年份是否是闰年。如果是闰年,返回 1,否则返回 0。`days_of_year` 函数根据给定的年月日计算该日期是该年的第几天。首先根据是否是闰年修改 2 月的天数,然后遍历给定的月份之前的每个月,累加每个月的天数。最后再加上给定的日期,得到该日期是该年的第几天。
在 `main` 函数中,先读入年月日,然后调用 `days_of_year` 函数计算该日期是该年的第几天,最后输出结果。
希望这个 C 语言代码能够满足您的需求。
阅读全文