分析:

月份天数可以使用闰年平年判断然后打表输出,也可以使用口诀一三五七八十腊再输出。

题解:

#include <bits/stdc++.h>
using namespace std;

int main() {
    int year = 0, month = 0;
    //设置好闰年和平年的每个月的天数
    int normal[] = {31,28,31,30,31,30,31,31,30,31,30,31};
    int gap[] = {31,29,31,30,31,30,31,31,30,31,30,31};
    //循环读入年月
    while(scanf("%d %d", &year, &month) != EOF) {
        //判断是否为闰年,分别通过上述的数组中查询月份的天数
        if(year % 4 == 0 || (year % 4 == 0 && year % 100 != 0)) {
            printf("%d\n", gap[month-1]);
        } else {
            printf("%d\n", normal[month-1]);
        }
    }
    return 0;
}

题解2:

#include <bits/stdc++.h>
using namespace std;

int main() {
    int year = 0, month = 0;
    //循环输入年月
    while(scanf("%d %d", &year, &month) != EOF) {
        //闰年的判断
        if(year % 4 == 0 || (year % 4 == 0 && year % 100 != 0)) {
            if(month == 2) { //如果是特殊月份
                printf("29\n");
                continue;
            }
        }
        if(month == 2)
            printf("28\n");
        else if(month == 1 || month == 3 || month == 5 || month == 7
                || month == 8 || month == 10 || month == 12) //在if语句中判断31天的月份
            printf("31\n");
        else //其余皆为30天的月份
            printf("30\n");
        }
    return 0;
}

总结:

if else 的嵌套使用,以及判断闰年平年的方法。