根据输入的年份和月份,计算并输出该月份的天数。
代码:
cpp
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int getday(int year, int month)
{
int days[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
// 1 2 3 4 5 6 7 8 9 10 11 12
int day=days[month];//是那个月
// 闰年的2月份有29天
if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0))
{
day = day + 1;
}
return day;
}
int main()
{
int year = 0;
int month = 0;
scanf("%d%d", &year, &month);
int day = getday(year, month);
printf("%d\n", day);
return 0;
}

代码核心逻辑拆解
- 数组定义 :
days[] = {0,31,28,31,30,31,30,31,31,30,31,30,31}定义了平年 1-12 月的天数,数组第 0 位设为 0 是为了让数组下标与月份编号(1-12)直接对应,方便取值。 - 初始天数获取 :
day=days[month]直接通过月份作为下标,获取该月的平年天数。 - 闰年判断 :使用标准闰年判定条件
year % 4 == 0 && (year % 100 != 0 || year % 400 == 0),判断当前年份是否为闰年。 - 天数修正与返回:若为闰年且目标月份是 2 月,则天数加 1(变为 29 天),最终返回该月实际天数。
- 主函数流程 :接收用户输入的年、月,调用
getday函数获取天数并打印输出。