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函数获取天数并打印输出。
相关推荐
To_OC5 小时前
LC 131 分割回文串:刚学回溯时,我连怎么切字符串都想不明白
javascript·算法·leetcode
炸膛坦客6 小时前
单片机/C/C++八股:(二十六)IIC 专题(I²C)---- 上集
c语言·c++·单片机
旖-旎6 小时前
LeetCode 518:零钱兑换||(完全背包)—— 题解
c++·算法·leetcode·动态规划·背包问题
灯澜忆梦6 小时前
GO_并发编程---定时器
开发语言·后端·golang
-银雾鸢尾-7 小时前
C#中的StringBuilder相关方法
开发语言·c#
To_OC7 小时前
LC 42 接雨水:暴力超时卡半天?前后缀数组一用就通了
javascript·算法·leetcode
-银雾鸢尾-7 小时前
C#中结构体与类的区别;抽象类与接口的区别
开发语言·c#
delishcomcn8 小时前
AI视觉识别+分切算法:电化铝缺陷检测与裁切一体化解锁
人工智能·算法
触底反弹8 小时前
深入理解大模型采样:Temperature、Top-K、Top-P 的原理与实战
人工智能·算法·面试
大模型码小白8 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程