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函数获取天数并打印输出。
相关推荐
尽兴-6 小时前
2.1 向量基础:Embedding、余弦相似度、欧氏距离、向量检索
算法·embedding·欧氏距离·向量检索·余弦相似度
小白学大数据6 小时前
爬虫性能天花板:asyncio赋能 Aiohttp,并发提速 10 倍
开发语言·爬虫·数据分析
凡人叶枫6 小时前
Effective C++ 条款07:为多态基类声明 virtual 析构函数
linux·c语言·开发语言·c++
Black蜡笔小新6 小时前
自动化AI算法训练服务器DLTM训推一体工作站赋能多行业智能化升级
人工智能·算法·自动化
凡人叶枫6 小时前
Effective C++ 条款10:令 operator= 返回一个 reference to *this
java·linux·服务器·开发语言·c++·effective c++
怪兽学LLM6 小时前
LeetCode 438 找到字符串中所有字母异位词(Python 固定滑动窗口+字符计数解法)
python·算法·leetcode
满怀冰雪6 小时前
第04篇-双指针算法-从有序数组到回文判断的高频解法
java·算法
CC数学建模6 小时前
2026年江西省研究生数学建模竞赛1题:空间数据分析中的过拟合识别完整思路、代码、模型、文章,全网首发高质量分享!
python·算法·数学建模
matlabgoodboy6 小时前
计算机java程序代写python代码编写c/c++代做qt设计php开发matlab
java·c语言·python
leo__5206 小时前
MATLAB实现牧羊人算法
开发语言·算法·matlab