C语言题(3)计算天数:按照格式“yyyy/mm/dd”(即“年/月/日”)输入日期,计算其是该年的第几天。要求定义和调用函数day_of_year(year,month,day)计算并返回年year、月month 和日 day 对应的是该年的第几天。试编写相应程序。
时间: 2024-03-13 17:45:18 浏览: 537
输入日期计算其对应这一年的第几天C语言
4星 · 用户满意度95%
以下是实现该功能的C语言代码:
```c
#include <stdio.h>
int day_of_year(int year, int month, int day);
int main() {
int year, month, day;
printf("请输入日期(格式为yyyy/mm/dd):");
scanf("%d/%d/%d", &year, &month, &day);
printf("该日期是该年的第%d天\n", day_of_year(year, month, day));
return 0;
}
int day_of_year(int year, int month, int day) {
int days = 0;
int i;
int month_days[] = {31,28,31,30,31,30,31,31,30,31,30,31}; // 每个月的天数
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { // 判断是否为闰年
month_days[1] = 29; // 闰年2月有29天
}
for (i = 0; i < month - 1; i++) { // 计算该月之前的天数
days += month_days[i];
}
days += day; // 加上该月的天数
return days;
}
```
代码思路:
1. 定义一个`day_of_year`函数,用于计算给定日期是该年的第几天。
2. 在`main`函数中,先从用户输入中获取年月日,然后调用上述函数计算并输出结果。
3. 在`day_of_year`函数中,首先定义了一个`month_days`数组,用于存储每个月的天数。如果给定年份为闰年,则将2月的天数改为29天。
4. 然后使用一个循环计算该月之前的天数,最后再加上该月的天数即可得出结果。
阅读全文