考虑不全面型的
#include <stdio.h>
int fun(int y,int n);
int main()
{
int n,y,r;
printf("输入年月日");
scanf("%d%d%d",&n,&y,&r);
printf("该日是该%d年的第%d天",n,fun(y,r));
return 0;
}
int fun(int y,int n)
{
int sum;
int a[12]={31,29,31,30,31,30,31,31,10,31,30,31};
for (int i = 0;i < (y - 1);i++)
{
sum = sum + a[i];
}
return sum+n;
}
考虑全面型(优先使用这种)
#include <stdio.h>
int day_of_the_year(int year, int month, int day)
{
int days[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
int sum = 0, i;
if (month < 1 || month > 12)
{
return -1;
}
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
{
days[1] = 29;
}
if (day < 1 || day > days[month - 1])
{
return -1;
}
for (i = 1; i < month; i++)
{
sum += days[i - 1];
}
sum += day;return sum;}
int main()
{
int year, month, day;
printf("enter year, month and day:");
scanf("%d%d%d", &year, &month, &day);
printf("%d-%d: %d day(s) in the year %d\n", month, day, day_of_the_year(year, month, day), year);
return 0;
}