试题描述
按如下函数原型用函数编程解决如下的日期转换问题(要求考虑闰年的问题):
输入某年某月某日,计算并输出它是这一年的第几天。
/* 函数功能:对给定的某年某月某日,计算并返回它是这一年的第几天
函数参数:整型变量year、month、day,分别代表年、月、日
函数返回值:这一年的第几天*/
int DayofYear(int year, int month, int day);
输入
输入3个整数,分别代表年、月、日,相邻两项之间用一个空格隔开。
输出
输出一个整数,代表该日期是这一年的第几天。
输入示例
2000 1 31
输出示例
31
#include <stdio.h>
int DayofYear(int year, int month, int day)
{
int i,leap,n=0,a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
leap=(year%4==0&&year%100!=0)||year%400==0;
for(i=0;i<month-1;i++)
n=n+a[i];
if(month>2)
n=n+leap;
return n+day;
}
int main()
{
int n,year,month,day;
scanf("%d%d%d",&year,&month,&day);
n=DayofYear(year,month,day);
printf("%d",n);
return 0;