请用c语言写出该程序
时间: 2024-10-07 08:04:04 浏览: 12
当然,下面是使用C语言编写的计算给定日期是一年中的第几天的简单程序。请注意,这里假设用户输入的月份是从0开始计数的(0代表一月,1代表二月,依此类推):
```c
#include <stdio.h>
int isLeapYear(int year) {
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
return 1;
} else {
return 0;
}
}
int sumDaysBeforeGivenDate(int year, int month) {
static const int daysInMonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
return daysInMonth[month] + (isLeapYear(year) && month == 1 ? 1 : 0);
}
int main() {
int year, month, day;
printf("请输入年份(YYYY)/月份(MM)/日期(DD): ");
scanf("%d/%d/%d", &year, &month, &day);
int totalDays = isLeapYear(year) ? 366 : 365; // 跟踪闰年天数
totalDays += sumDaysBeforeGivenDate(year, month);
printf("给定日期 (%d/%d/%d) 是该年的第 %d 天.\n", year, month+1, day, totalDays + day); // 注意月份加1
return 0;
}
```
在这个程序中,我们首先定义了一个函数`isLeapYear`用于检查是否为闰年,然后在`sumDaysBeforeGivenDate`函数中计算给定年份和月份前的天数。在主函数`main`中,读取用户的输入,并计算出总天数。
阅读全文