定义一个日期结构体类型(包括年、月、日),编写程序,要求输入年月日,输出该日在本年中第几天。 输出格式:"是%d年第%d天" 【输入形式】 年月日 【输出形式】 本年第几天 【样例输入】 2006 3 12 【样例输出】 是2006年第71天
时间: 2023-12-01 15:04:15 浏览: 64
以下是C语言的实现代码:
```c
#include <stdio.h>
struct Date {
int year;
int month;
int day;
};
int isLeapYear(int year);
int getDayNum(struct Date date);
int main()
{
struct Date date;
scanf("%d %d %d", &date.year, &date.month, &date.day);
int dayNum = getDayNum(date);
printf("是%d年第%d天\n", date.year, dayNum);
return 0;
}
int isLeapYear(int year)
{
return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}
int getDayNum(struct Date date)
{
int dayTable[2][13] = {
{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
};
int leap = isLeapYear(date.year);
int dayNum = 0;
for (int i = 1; i < date.month; i++) {
dayNum += dayTable[leap][i];
}
dayNum += date.day;
return dayNum;
}
```
输入样例:
```
2006 3 12
```
输出样例:
```
是2006年第71天
```
阅读全文