感觉我的思路没什么问题,但好像在函数for循环部分的i值有问题,请问那个for语句怎么改?(因为要求,函数是固定的)
#include<stdio.h>
void MonthDay(int year,int yearDay,int *pMonth,int *pDay);
int main()
{
int year,yearday,month,day;
printf("请输入年份:");
scanf("%d",&year);
printf("请输入第几天:");
scanf("%d",&yearday);
MonthDay(year,yearday,&month,&day);
printf("是今年的%d月%d日\n",month,day);
return 0;
}
void MonthDay(int year,int yearDay,int *pMonth,int *pDay)
{
int m[12]={31,28,31,30,31,30,31,31,30,31,30,31},i;
if(year%4==0&&year%100!=0||year%400==0)
m[1]=29;
*pMonth=0;
for(i=0;i<12;i++){
*pDay=yearDay-m[i];
*pMonth=i;
if(*pDay<=0) {
*pDay=*pDay+m[i];
break;
}
}
}
#include<stdio.h>
int main()
{
int year, yearday, month, day;
int MonDay[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
printf("请输入年份:");
scanf("%d", &year);
printf("请输入第几天:");
scanf("%d", &yearday);
if((year%400==0) || (year%4==0 && year %100!=0)) MonDay[1] = 29;
for (int i = 0; yearday > 0; i++) {
day = yearday;
month = i + 1;
yearday -= MonDay[i];
}
printf("是今年的%d月%d日\n", month, day);
return main();
}