用c语言编写定义一个结构体日期(年、月、日),计算并输出该日期是该年中的第几天,要求自定义函数,用结构体指针作为函数参数,并要考虑闰年和非闰年情况。输出结果为是第341天
时间: 2024-02-06 11:08:52 浏览: 35
定义日期结构体类型-C语言结构体与共用体
以下是用C语言编写的代码:
```c
#include <stdio.h>
// 定义日期结构体
struct Date {
int year;
int month;
int day;
};
// 判断是否为闰年
int isLeapYear(int year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return 1;
} else {
return 0;
}
}
// 计算该日期是该年中的第几天
int getDayCount(struct Date *date) {
int dayCount = 0;
int monthDays[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int i;
// 计算闰年2月的天数
if (isLeapYear(date->year)) {
monthDays[1] = 29;
}
// 计算该日期之前的天数
for (i = 0; i < date->month - 1; i++) {
dayCount += monthDays[i];
}
dayCount += date->day; // 加上该月的天数
return dayCount;
}
int main() {
struct Date date = {2021, 12, 7};
int dayCount = getDayCount(&date);
printf("该日期是该年中的第%d天", dayCount);
return 0;
}
```
输出结果为:该日期是该年中的第341天
阅读全文