按如下函数原型用函数编程解决如下的日期转换问题(要求考虑闰年的问题): 输入某一年的第几天,计算并输出它是这一年的第几月第几日。 /* 函数功能: 对给定的某一年的第几天,计算它是这一年的第几月第几日 函数入口参数:整型变量year,存储年 整型变量yearDay,存储这一年的第几天 函数出口参数:整型指针pMonth,指向存储这一年第几月的整型变量 整型指针pDay,指向存储第几日的整型变量 函数返回值: 无 */ void MonthDay(int year, int yearDay, int *pMonth, int *pDay); 输入提示信息:"Please enter year, yearDay:" 输入格式:"%d,%d" 输出提示信息和格式:"month = %d, day = %d\n"
时间: 2024-03-08 19:50:55 浏览: 78
请见下面的完整程序代码:
```c
#include <stdio.h>
void MonthDay(int year, int yearDay, int *pMonth, int *pDay)
{
int i, monthDays;
int month[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; // 平年每月的天数
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) // 判断是否为闰年
{
month[2] = 29;
}
for(i = 1; i <= 12; i++)
{
monthDays = month[i];
if(yearDay > monthDays) // 如果剩余天数大于本月的天数,则继续减去本月的天数
{
yearDay -= monthDays;
}
else // 如果剩余天数小于等于本月的天数,则已经找到了对应的月份和日期
{
*pMonth = i;
*pDay = yearDay;
break;
}
}
}
int main()
{
int year, yearDay, month, day;
printf("Please enter year, yearDay:");
scanf("%d,%d", &year, &yearDay);
MonthDay(year, yearDay, &month, &day);
printf("month = %d, day = %d\n", month, day);
return 0;
}
```
阅读全文