用c语言编程 定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题。

2024-12-05 15:51:40
推荐回答(1个)
回答(1):

#include

struct y_m_d
{
    int year;
    int month;
    int day;
};

int days(struct y_m_d date)
{
    int sum=date.day;
    int a[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31};
    int i;
    for(i=1; i    {
        sum+=a[i];
    }
    if(date.month>2&&((date.year%4==0&&date.year%100!=0)||date.year%400==0)) //若闰年,且晚于2月,加一天
        sum++;
    return sum;
}

int main()
{
    struct y_m_d date;
    int day_sum;
    printf("请输入年月日(以空格隔开):");
    scanf("%d%d%d",&date.year,&date.month,&date.day);
    day_sum=days(date);
    printf("%d年%d月%d日是%d年的第%d天\n",date.year,date.month,date.day,date.year,day_sum);
    return 0;
}

执行结果如下:

输入:2016年3月1日

输出:该日是当年的第61天。2016年是闰年,所以3月1日是第61天=31+29+1