用C语言编写程序定义一个关于年、月、日的结构体,并编写一个函数计算某日期是该年中的第几天。注意闰年问题,要求用结构体指针作为函数参数。
时间: 2024-03-26 22:35:05 浏览: 83
好的,下面是代码实现:
```c
#include <stdio.h>
struct Date {
int year;
int month;
int day;
};
int isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}
int dayOfYear(struct Date *date) {
int days[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int i, daysInYear = 0;
for (i = 1; i < date->month; i++) {
daysInYear += days[i];
}
daysInYear += date->day;
if (isLeapYear(date->year) && date->month > 2) {
daysInYear += 1;
}
return daysInYear;
}
int main() {
struct Date date = {2022, 12, 31};
printf("该日期是该年中的第 %d 天。\n", dayOfYear(&date));
return 0;
}
```
这里我们定义了一个 `Date` 结构体,包含了年、月、日三个成员变量。`isLeapYear` 函数用于判断一个年份是否为闰年。`dayOfYear` 函数计算某个日期是该年中的第几天,包含了闰年问题的考虑。最后在 `main` 函数中定义了一个日期,调用 `dayOfYear` 函数并输出结果。
阅读全文