题解 | #获得月份天数#
获得月份天数
https://www.nowcoder.com/practice/13aeae34f8ed4697960f7cfc80f9f7f6
#include <stdio.h>
#include <stdlib.h> // 引入用于标准库函数的头文件,比如exit函数
// 判断是否为闰年的函数,返回1表示是闰年,返回0表示不是闰年
int is_leap_year(int year) {
return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0);
}
int main() {
int y, m;
int n1[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int n2[] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
while (scanf("%d %d", &y,
&m) == 2) { // 更规范的写法判断scanf是否成功读取两个整数
if (m < 1 || m > 12) {
fprintf(stderr,
"输入的月份不合法,请重新输入1到12之间的整数作为月份!\n");
// 清空输入缓冲区,避免无效数据残留影响下一次输入读取
while (getchar() != '\n');
continue;
}
int* days = is_leap_year(y) ? n2 :
n1; // 根据是否闰年选择对应的天数数组指针
printf("%d\n", days[m]);
}
return 0;
}
