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

来源:百度知道 编辑:UC知道 时间:2024/05/31 14:21:54

#include"stdio.h"

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

int Day(struct date *p)
{
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int b[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
int i,n=0,m=p->year;
if((m%4==0&&m%100!=0)||(m%400==0))
{
for(i=1;i<p->month;i++)
n+=b[i];
n+=p->day;
}
else
{
for(i=1;i<p->month;i++)
n+=a[i];
n+=p->day;
}
return n;
}

main()
{
struct date a;
printf("\nInput:");
scanf("%d%d%d",&a.year,&a.month,&a.day);
printf("\n%d.%d.%d is the %d day in this year!\n",a.year,a.month,a.day,Day(&a));
}