编写程序,用scanf函数输入某年某月某日,判断这一天是这一年的第几天

来源:百度知道 编辑:UC知道 时间:2024/07/02 19:02:04
有高手吗?

#include "stdio.h"
struct date{ int y;
int m;
int d;
}yd;
void main()
{ int n=0;
int ac(struct date *f,int n);
struct date *p;
p=&yd;
printf("请输入日期(年,月,日):");
scanf("%d%d%d",&p->y,&p->m,&p->d);
while(p->m>12||p->m<1||p->d>31||p->d<1)
{printf("输入错误,请重输:");scanf("%d%d%d",&p->y,&p->m,&p->d);}
n=ac(p,n);
printf("该日在%d年的第%d天",p->y,n);
}
int ac(struct date *f,int n)
{ int i;
for(i=1;i<f->m;i++)
{ if(i==2)
{ if(((f->y%4==0)&&(f->y%100!=0))||(f->y%400==0)) n+=29;
else n+=28;
}
else {
if(i<7)
{ if((i%2)==0) n+=30;
else n+=31;
}
if(i>=7)
{ if((i%2)==0) n+=31;
else n+=30;
}
<