写一个函数days, 用结构体变量(包括年、月、日)做参数,计算该日在本年中是第几天?主函数将年、月、日传递给days函数,计算后将日子数传回主函数输出。
时间: 2023-05-02 20:02:58 浏览: 165
这个问题是要写一个函数days,用结构体变量(包括年、月、日)做参数,计算该日在本年中是第几天。主函数将年、月、日传递给days函数,计算后将日子数传递给主函数并输出。
函数定义如下:
```c
int days(struct date d);
```
其中,struct date是包括年、月、日的结构体类型,返回值为该日期在本年中是第几天。
主函数的实现如下:
```c
#include<stdio.h>
struct date
{
int year;
int month;
int day;
};
int days(struct date d);
int main()
{
struct date today;
int yearday;
printf("请输入年份:");
scanf("%d",&today.year);
printf("请输入月份:");
scanf("%d",&today.month);
printf("请输入日期:");
scanf("%d",&today.day);
yearday = days(today);
printf("该日期在本年是第%d天\n",yearday);
return 0;
}
int days(struct date d)
{
int i, leap;
int daytab[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}
};
leap = (d.year%4==0 && d.year%100!=0) || d.year%400==0;
for (i=1; i<d.month; i++)
d.day += daytab[leap][i];
return d.day;
}
```
当输入年月日后,输出该日期在本年中是第几天。
例如:输入2021年06月01日,输出结果是153(因为2021年已经过了150天,加上1号、2号、3号,所以是第153天)。
阅读全文
相关推荐

















