输入年和天数,输出对应的月和日。例如:输入2000和61,输出3和1。 函数接口定义: void month_day(int,int,int*,int*); 裁判测试程序样例: #include <stdio.h> #include <stdlib.h> #include <time.h> void month_day(int,int,int*,int*); int main( ) { int d,m,y,yd; while(scanf("%d%d",&y,&yd)!=EOF){ month_day(y,yd,&m,&d); printf("%d-%d\n",m,d); } } /* 你的代码将被嵌在这里 */
时间: 2023-06-19 21:08:30 浏览: 66
实现代码如下:
```c
#include <stdio.h>
void month_day(int year, int day, int *month, int *date) {
int leap = (year%4 == 0 && year%100 != 0) || year%400 == 0; // 判断是否为闰年
int days_in_month[13] = {0,31,28+leap,31,30,31,30,31,31,30,31,30,31}; // 存储每个月的天数
int i;
for (i = 1; day > days_in_month[i]; i++) { // 计算月份和日期
day -= days_in_month[i];
}
*month = i;
*date = day;
}
int main() {
int year, day;
int month, date;
while(scanf("%d%d",&year,&day) != EOF){
month_day(year, day, &month, &date);
printf("%d-%d\n", month, date);
}
return 0;
}
```
程序的核心在 `month_day` 函数中,通过判断是否为闰年,以及存储每个月的天数,计算出对应的月份和日期。在 `main` 函数中,循环读取输入的年和天数,并调用 `month_day` 函数,输出对应的月份和日期。