c语言-根据输入的年份和月份,计算并输出该月份的天数

根据输入的年份和月份,计算并输出该月份的天数。

代码:

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;
}

代码核心逻辑拆解

  1. 数组定义days[] = {0,31,28,31,30,31,30,31,31,30,31,30,31} 定义了平年 1-12 月的天数,数组第 0 位设为 0 是为了让数组下标与月份编号(1-12)直接对应,方便取值。
  2. 初始天数获取day=days[month] 直接通过月份作为下标,获取该月的平年天数。
  3. 闰年判断 :使用标准闰年判定条件 year % 4 == 0 && (year % 100 != 0 || year % 400 == 0),判断当前年份是否为闰年。
  4. 天数修正与返回:若为闰年且目标月份是 2 月,则天数加 1(变为 29 天),最终返回该月实际天数。
  5. 主函数流程 :接收用户输入的年、月,调用getday函数获取天数并打印输出。
相关推荐
lly2024061 分钟前
Vue3 指令详解
开发语言
WHS-_-202210 分钟前
Tx and Rx IQ Imbalance Compensation for JCAS in 5G NR
javascript·算法·5g
_OP_CHEN15 分钟前
【从零开始的Qt开发指南】(二十三)Qt 界面优化之 QSS 实战指南:从入门到精通,让你的界面颜值飙升!
开发语言·c++·qt·前端开发·界面美化·qss·客户端开发
e***985718 分钟前
Java性能优化实战:从原理到案例
java·开发语言·性能优化
HellowAmy20 分钟前
我的C++规范 - 跳跃的对象
开发语言·c++·代码规范
lph00921 分钟前
QtMqtt 的编译与QT环境加载配置
开发语言·qt
jinmo_C++21 分钟前
Leetcode_59. 螺旋矩阵 II
算法·leetcode·矩阵
夏鹏今天学习了吗22 分钟前
【LeetCode热题100(81/100)】零钱兑换
算法·leetcode·职场和发展
北京地铁1号线32 分钟前
Embedding 模型的经典benchmark:MTEB
算法
焦糖玛奇朵婷38 分钟前
盲盒小程序:开发视角下的功能与体验
java·大数据·jvm·算法·小程序