c语言代码 定义一个日期结构体类型(包括年、月、日),编写程序,要求输入年月日,输出该日在本年中第几天。 输出格式:"是%d年第%d天"
时间: 2023-12-12 16:20:23 浏览: 29
好的,以下是C语言的代码实现:
```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 getDayInYear(struct Date* date) {
int days_in_month[] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int days = date->day;
for (int i = 1; i < date->month; i++) {
days += days_in_month[i];
if (i == 2 && isLeapYear(date->year)) {
days++;
}
}
return days;
}
int main() {
struct Date date;
printf("请输入年月日,格式为YYYY MM DD:");
scanf("%d %d %d", &date.year, &date.month, &date.day);
int day_in_year = getDayInYear(&date);
printf("是%d年第%d天\n", date.year, day_in_year);
return 0;
}
```
输入示例:
```
请输入年月日,格式为YYYY MM DD:2021 10 18
```
输出示例:
```
是2021年第291天
```