用c语言编写一个程序。请实现以下功能: 输入三个数,分别为年、月、日,输出此日是该年的第 几天。 输入: XXXXXXXXX 输出: 此日是该年的第XXX天 示例: 输入2020220 程序输出此日是该年的第51天
时间: 2024-10-15 21:20:38 浏览: 49
可以使用C语言编写一个简单的程序来实现这个功能。这里是一个基本的示例,它将使用`scanf`函数从用户输入读取日期,并计算该日在当年的位置:
```c
#include <stdio.h>
int is_leap_year(int year) {
if (year % 4 != 0)
return 0;
else if (year % 100 == 0)
return year % 400 == 0;
else
return 1;
}
int days_in_month(int month, int year) {
switch(month) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31;
case 4: case 6: case 9: case 11: return 30;
default: // February
if (is_leap_year(year))
return 29;
else
return 28;
}
}
int main() {
int year, month, day;
printf("请输入年份(YYYY): ");
scanf("%d", &year);
printf("请输入月份(MM): ");
scanf("%d", &month);
printf("请输入日期(DD): ");
scanf("%d", &day);
day--; // 因为计数是从0开始的,所以需要减去1
// 加上前几个月的天数
int total_days = 0;
for (int i = 1; i < month; ++i) {
total_days += days_in_month(i, year);
}
total_days += day;
printf("此日是该年的第%d天.\n", total_days);
return 0;
}
```
在这个程序中,我们首先定义了两个辅助函数:`is_leap_year`用于判断是否是闰年,以及`days_in_month`用于获取给定月份的天数。然后,在`main`函数中,通过循环累加前几个月的天数并加上当前输入的日期,得到该日是一年的第几天。
阅读全文