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函数获取天数并打印输出。
相关推荐
IvanCodes4 小时前
Python 数据处理(十三):JSON、CSV 与数据序列化
开发语言·python
aramae5 小时前
MySQL复合查询(8)
java·c语言·开发语言·后端·算法
荆棘鸟智能6 小时前
城市感知设备怎么统一接入?从多协议网关到设备模型的中间件架构设计
人工智能·算法·边缘计算
无敌贵点大王6 小时前
RTThread学习记录11——RT-Thread 设备模型吃透:UART/ADC/PWM/PIN 到底有什么区别?
c语言·stm32·学习·链表
Logic1017 小时前
C语言/数据结构位运算题解:异或XOR找出时尚聚会中的“独特颜色“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
qq_2518364578 小时前
springboot vue3 开发实现 拼豆管理系统
java·开发语言·ai编程
郑州光合科技余经理9 小时前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
知识分享小能手9 小时前
C++ 学习教程,从入门到精通,C++ 入门知识 — 完整知识点(1)
开发语言·c++·学习
+VX:Fegn08959 小时前
计算机毕业设计|基于springboot + vue旅游管理系统(源码+数据库+文档)
java·开发语言·vue.js·spring boot·课程设计
阿里嘎多学长10 小时前
2026-09-20 GitHub 热点项目精选
开发语言·程序员·github·代码托管