通过题目可知,它是多组输入,多组输入一般采用循环来输入,循环输入可以是先输完,在做判断(我称之为"单工"),也可以在每组输入后进行判断(我称之为"双工"),这里采用双工的方式.

首先,这种跟闰年有挂钩的题目先把判断闰年的函数写出来

int leepyear(int a)
{
    if((a%4==0&&a%100!=0) || a%400==0)
        return 1;
    else 
        return 0;
}

接着往下看,发现它要求每个月的天数,
那就把一年中12个月的天数分别写出来(因为这没有规律)
注:二月份可以不管!

int month[12] = {31,28,31,30,31,30,31,31,30,31,30,31};

然后将多组输入的壳子套进去,再定义几个变量用来接收输入的年、月

	int year ,i,day;
    int month[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
    while(~scanf("%d %d",&year,&i))
    {
        //xxx语句    
    }

再把闰年判断二月份天数等语句补全即可
完整代码

int leepyear(int a)
{
    if((a%4==0&&a%100!=0) || a%400==0)
        return 1;
    else 
        return 0;
}
int main()
{
    int year ,i,day;
    int month[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
    while(~scanf("%d %d",&year,&i))
    {
        if(leepyear(year))
            month[1]=29;
        else month[1]=28;
        printf("%d\n",month[i-1]);
            
    }
    return 0;
}