利用指针编制程序。输入年和天数,输出对应的年、月、日。例如:输入2020和61,输出2000-3-1。要求:定义函数month_day(year, yearday, *pmonth, *pday)。
#include <stdio.h>
void month_day(int year,int yearday,int *pmonth,int *pday);
int main()
{ int year,yearday,*pmonth,*pday,m=1,d=0;
printf("Input year and yearday:");
scanf("%d%d",&year,&yearday);
pmonth = &m;
pday = &d;
month_day(year,yearday,pmonth,pday);
printf("%d-%d-%d",year,m,d);
}
void month_day(int year,int yearday,int *pmonth,int *pday)
{ int i,x=0;
for(i=1;;i++)
{if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
{ x += 31;
*pmonth = *pmonth + 1;
if(x>=yearday)
{
*pmonth = *pmonth - 1;
*pday = yearday-x+31;
break ;
}
}
else if(i==2)
{ if((year%4==0&&year%100!=0)||year%400==0)
{x += 29;
*pmonth = *pmonth + 1;
if(x>=yearday)
{
*pmonth = *pmonth - 1;
*pday = yearday-x+29;
break ;
}
}
else
{
x += 28;
*pmonth = *pmonth + 1;
if(x>=yearday)
{
*pmonth = *pmonth - 1;
*pday = yearday-x+28;
break ;
}
}
}
else
{
x +=30;
*pmonth = *pmonth + 1;
if(x>=yearday)
{
*pmonth = *pmonth - 1;
*pday = yearday-x+30;
break ;
}
}
}
}