#include <stdio.h>
//输入年份和天数。输出对应的年、月、日,如输入:2000 61 ,则输出:第2000年的第61天是3月1日。
int main()
{
int year,days,month,day;
int transform(int,int,int*pmonth,int*pday); //转换函数
scanf("%d %d",&year,&days);
if (transform(year,days,&month,&day)==0)
printf("%d年的第%d天是%d月%d日。",year,days,month,day);
else
printf("非法输入");
return 0;
}
int transform(int year,int days,int*pmonth,int*pday)
{
int a[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}},i,k; //建立二维数组用于存储闰年和非闰年每月的天数
if (days>366 || days<0 || year<0) return 1; //判断输入是否合法
if ((year%4==0 && year%100!=0)||year%400==0) //闰年的判断条件
{
k=1;
}else
{
k=0;
}
for (i=0;i<12;i++)
{
if (days<=a[k][i])
{
*pmonth=i+1; //通过指针修改外部变量的值
*pday=days; //同上
break;
}else
{
days-=a[k][i];
}
}
return 0;
}