分析:
月份天数可以使用闰年平年判断然后打表输出,也可以使用口诀一三五七八十腊再输出。
题解:
#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 的嵌套使用,以及判断闰年平年的方法。