题目如下:
按如下函数原型用函数编程解决如下的日期转换问题(要求考虑闰年的问题):
输入某年某月某日,计算并输出它是这一年的第几天。
/* 函数功能: 对给定的某年某月某日,计算它是这一年的第几天
函数参数: 整型变量year、month、day,分别代表年、月、日
函数返回值:这一年的第几天 */
int DayofYear(int year, int month, int day);
代码如下:
#include <stdio.h>
int Dayofyear(int year,int month,int day);//定义函数
int dayTab[2][13]=//定义闰年和平年的二维数组,当数组是第一行是闰年,第二行是平年
{
{0,31,29,31,30,31,30,31,31,30,31,30,31},
{0,31,28,31,30,31,30,31,31,30,31,30,31}
};
int main()
{
int year,month,day;
printf("Please enter year,month,day:");
scanf("%d,%d,%d",&year,&month,&day);
printf("yearDay = %d\n",Dayofyear(year,month,day));
}
int Dayofyear(int year,int month,int day)
{
int i,leap;
leap=((year/4==0 && year/100!=0)||year/400==0);//判断是 否是闰年,是闰年就是1,不是则是0
for(i=0;i<month;i++)
{
day=day+dayTab[1-leap][i];//如果是闰年,则是第一行,则是0.
}
return day;//返会天数。
}
欢迎评论区交流