inline int isleap(int y) //闰年判断
{
return y % (y % 100 ? 4 : 400) ? 0 : 1;
}
int dayFmon(int y, int m) //某年某月的最大天数
{
int d = 0;
switch(m)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
d = 31;
break;
case 4:
case 6:
case 9:
case 11:
d = 30;
break;
case 2:
d = 28 + isleap(y);
break;
}
return d;
}
以上就是此题的重点,再然后就是输入--》调用以上函数--》输出结果了
尽量把小功能函数化,方便以后使用,不要揉成一团
#include
int main()
{ int y,m,d;
scanf("%d%d",&y,&m);
if(m<8&&m%2||m>7&&m%2==0)d=31;
else if(m==2)d=28+(y%4&&y%100||y%400==0);
else d=30;
printf("year = %d month = %d days = %d\n",y,m,d);
return 0;
}