C语言数组输入输入年、月、日,求该日是该年的第几天?
时间: 2023-12-03 16:55:11 浏览: 135
可以使用一个数组存储每个月份的天数,然后根据输入的年、月、日计算出该天是该年的第几天。具体实现如下:
```c
#include <stdio.h>
int main()
{
int year, month, day;
int days_in_month[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int total_days = 0;
printf("请输入年月日,格式为yyyy mm dd:");
scanf("%d %d %d", &year, &month, &day);
// 计算是否为闰年
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
days_in_month[1] = 29; // 闰年2月份有29天
}
// 计算总天数
for (int i = 0; i < month - 1; i++) {
total_days += days_in_month[i];
}
total_days += day;
printf("%d年%d月%d日是该年的第%d天\n", year, month, day, total_days);
return 0;
}
```
代码中,首先定义了一个整型数组 `days_in_month`,用于存储每个月份的天数。接着,从用户输入读取年、月、日,并判断是否为闰年。如果是闰年,则将2月份的天数修改为29天。最后,根据月份和天数计算出该天是该年的第几天,并输出结果。
需要注意的是,闰年的计算规则为:年份可以被4整除但不能被100整除,或者可以被400整除。
阅读全文