C语言:获得月份天数(多组输入)

news2024/9/24 19:23:37

题目:

描述

KiKi想获得某年某月有多少天,请帮他编程实现。输入年份和月份计算这一年这个月有多少天

           

输入描述:

多组输入一行有两个整数,分别表示年份和月份用空格分隔

             

输出描述:

针对每组输入,输出为一行,一个整数,表示这一年这个月有多少天。

                 

示例1

输入:

2008 2

输出:

29

                    

 =========================================================================

                       

思路一:使用 switch语句 进行日期分类

总体思路:

(一).

写一个函数 get_days_of_month 返回对应月份天数

             

函数参数:

int y -- 年份

int m -- 月份

          

使用 switch语句根据月份返回该月天数

如果 m(月份)

1、3、5、7、8、10、12 月 -- 不论平年还是闰年,该月都有31天返回31天

4、6、9、11 月 -- 不论平年还是闰年,该月都有30天返回30天

如果是 2月 ,则单独判断

平年返回 28 天

闰年 返回 28+1 天即29天

         

(二).

主函数:

        

定义变量:

int y = 0; -- 年份

int m = 0; -- 月份

             

使用 while循环 进行多组输入

输入一次调用一次 get_days_of_month函数 返回天数

 获得 返回天数后 ,进行打印

                


                 

第一步:

写一个函数 get_days_of_month 返回对应月份天数

             

(1).

函数参数:

int y -- 年份

int m -- 月份

          

(2).

使用 switch语句根据月份返回该月天数

如果 m(月份)

1、3、5、7、8、10、12 月 -- 不论平年还是闰年,该月都有31天返回31天

4、6、9、11 月 -- 不论平年还是闰年,该月都有30天返回30天

            

如果是 2月 ,则单独判断

平年返回 28 天

闰年 返回 28+1 天即29天

                     

实现代码:

#include <stdio.h>

//写一个函数返回对应月份天数:
int get_days_of_month(int y, int m)
{
	int d = 0; //该年该月天数
	//使用 switch循环,根据月份返回该月天数:
	switch (m)
	{
		//1 3 5 7 8 10 12 -- 返回31天
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
		{
			d = 31;
			break;
		}
		//4 6 9 11 -- 返回30天
		case 4:
		case 6:
		case 9:
		case 11:
		{
			d = 30;
			break;
		}
		//2月看平年还是闰年返回天数:
		case 2:
		{
			d = 28; //平年
			if ((y%4==0 && y%100!=0) || (y%400==0))
			{
				d += 1; //闰年,28+1天,即29天
			}
		}
	}
	return d; //返回天数
}

int main()
{
	return 0;
}

实现图片:

                 


                 

第二步:

主函数:

        

(1).

定义变量:

int y = 0; -- 年份

int m = 0; -- 月份

             

(2).

使用 while循环 进行多组输入

输入一次调用一次 get_days_of_month函数 返回天数

 获得 返回天数后 ,进行打印

                     

实现代码:

#include <stdio.h>

//写一个函数返回对应月份天数:
int get_days_of_month(int y, int m)
{
	int d = 0; //该年该月天数
	//使用 switch循环,根据月份返回该月天数:
	switch (m)
	{
		//1 3 5 7 8 10 12 -- 返回31天
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
		{
			d = 31;
			break;
		}
		//4 6 9 11 -- 返回30天
		case 4:
		case 6:
		case 9:
		case 11:
		{
			d = 30;
			break;
		}
		//2月看平年还是闰年返回天数:
		case 2:
		{
			d = 28; //平年
			if ((y%4==0 && y%100!=0) || (y%400==0))
			{
				d += 1; //闰年,28+1天,即29天
			}
		}
	}
	return d; //返回天数
}

int main()
{
	//定义变量:
	int y = 0; //年
	int m = 0; //月

	//使用while循环,进行多组输入:
	while (scanf("%d %d", &y, &m) == 2)
		//输入了 年 和 月 两个变量后就进行获取天数
	{
		//调用函数 get_days_of_month 并获取返回天数:
		int d = get_days_of_month(y, m);
		
		//获取天数后,进行打印:
		printf("%d\n", d);
	}

	return 0;
}

实现图片:

                    

思路一:最终代码和实现效果

最终代码:

#include <stdio.h>

//写一个函数返回对应月份天数:
int get_days_of_month(int y, int m)
{
	int d = 0; //该年该月天数
	//使用 switch循环,根据月份返回该月天数:
	switch (m)
	{
		//1 3 5 7 8 10 12 -- 返回31天
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
		{
			d = 31;
			break;
		}
		//4 6 9 11 -- 返回30天
		case 4:
		case 6:
		case 9:
		case 11:
		{
			d = 30;
			break;
		}
		//2月看平年还是闰年返回天数:
		case 2:
		{
			d = 28; //平年
			if ((y%4==0 && y%100!=0) || (y%400==0))
			{
				d += 1; //闰年,28+1天,即29天
			}
		}
	}
	return d; //返回天数
}

int main()
{
	//定义变量:
	int y = 0; //年
	int m = 0; //月

	//使用while循环,进行多组输入:
	while (scanf("%d %d", &y, &m) == 2)
		//输入了 年 和 月 两个变量后就进行获取天数
	{
		//调用函数 get_days_of_month 并获取返回天数:
		int d = get_days_of_month(y, m);
		
		//获取天数后,进行打印:
		printf("%d\n", d);
	}

	return 0;
}

实现效果:

                    

 =========================================================================

                       

思路二:用数组存储各月的日期

总体思路:

(一).

写一个函数 get_days_of_month  返回对应月份天数

        

定义天数变量

int d = 0; -- 天数

           

定义一个数组存放 一年12个月的天数

int days[ ] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };

下标0的元素随便放一个数,让1月下标为12月下标为2以此类推

         

传进来的月份对应数组中的该月份下标

d = days[m];

           

数组中的二月是28天,是平年的,

判断 int y 是不是闰年m 是不是二月

是则 d += 1;  即 29 天

         

返回天数 d

             

(二).

主函数 和 思路一 一样

                


              

第一步:

写一个函数 get_days_of_month  返回对应月份天数

        

(1).

定义天数变量

int d = 0; -- 天数

           

(2).

定义一个数组存放 一年12个月的天数

int days[ ] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };

下标0的元素随便放一个数,让1月下标为12月下标为2以此类推

         

(3).

传进来的月份对应数组中的该月份下标

d = days[m];

           

(4).

数组中的二月是28天,是平年的,

判断 int y 是不是闰年m 是不是二月

是则 d += 1;  即 29 天

         

(5).

返回天数 d

                     

实现代码:

#include <stdio.h>

//写一个函数 get_days_of_month 返回对应月份天数:
int get_days_of_month(int y, int m)
{
	//定义天数变量:
	int d = 0;

	//定义一个数组(平年),存放一年12个月的天数:
	int days[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
	// 下标(月份) 0  1  2  3  4  5  6  7  8  9 10 11 12

	//让传进来的月份对应数组中的该年份下标:
	d = days[m];

	//判断是不是闰年的二月:
	if (((y%4==0 && y%100!=0) || (y%400==0)) && m==2)
		//如果是 闰年,并且是 二月  
	{
		d += 1; //在数组中平年二月28天的基础上+1变成29天
	}

	//返回天数:
	return d;
}

int main()
{


	return 0;
}

实现图片:

                 


                 

第二步:

主函数 和 思路一 一样

                     

实现代码:

#include <stdio.h>

//写一个函数 get_days_of_month 返回对应月份天数:
int get_days_of_month(int y, int m)
{
	//定义天数变量:
	int d = 0;

	//定义一个数组(平年),存放一年12个月的天数:
	int days[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
	// 下标(月份) 0  1  2  3  4  5  6  7  8  9 10 11 12

	//让传进来的月份对应数组中的该年份下标:
	d = days[m];

	//判断是不是闰年的二月:
	if (((y%4==0 && y%100!=0) || (y%400==0)) && m==2)
		//如果是 闰年,并且是 二月  
	{
		d += 1; //在数组中平年二月28天的基础上+1变成29天
	}

	//返回天数:
	return d;
}

int main()
{
	//定义变量:
	int y = 0; //年
	int m = 0; //月

	//使用while循环,进行多组输入:
	while (scanf("%d %d", &y, &m) == 2)
		//输入了 年 和 月 两个变量后就进行获取天数
	{
		//调用函数 get_days_of_month 并获取返回天数:
		int d = get_days_of_month(y, m);

		//获取天数后,进行打印:
		printf("%d\n", d);
	}

	return 0;
}

实现图片:

                    

思路二:最终代码和实现效果

最终代码:

#include <stdio.h>

//写一个函数 get_days_of_month 返回对应月份天数:
int get_days_of_month(int y, int m)
{
	//定义天数变量:
	int d = 0;

	//定义一个数组(平年),存放一年12个月的天数:
	int days[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
	// 下标(月份) 0  1  2  3  4  5  6  7  8  9 10 11 12

	//让传进来的月份对应数组中的该年份下标:
	d = days[m];

	//判断是不是闰年的二月:
	if (((y%4==0 && y%100!=0) || (y%400==0)) && m==2)
		//如果是 闰年,并且是 二月  
	{
		d += 1; //在数组中平年二月28天的基础上+1变成29天
	}

	//返回天数:
	return d;
}

int main()
{
	//定义变量:
	int y = 0; //年
	int m = 0; //月

	//使用while循环,进行多组输入:
	while (scanf("%d %d", &y, &m) == 2)
		//输入了 年 和 月 两个变量后就进行获取天数
	{
		//调用函数 get_days_of_month 并获取返回天数:
		int d = get_days_of_month(y, m);

		//获取天数后,进行打印:
		printf("%d\n", d);
	}

	return 0;
}

实现效果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/672541.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python整除判断——一个不可缺少的技能

Python整除判断——一个不可缺少的技能 Python是一门广泛应用于科学计算、人工智能等多个领域的编程语言。在Python中&#xff0c;整除判断是一个非常基础但却不可或缺的技能。本篇文章将从基础开始介绍如何判断是否整除&#xff0c;以及如何在实际应用中使用整除判断。 整除…

PB9与Navicat Premium 16同时连接Oracle11g的连接问题

PB9与Navicat Premium 16同时连接Oracle11g的连接问题。 电脑安装的是win64_11gR2_database就是64的。 Navicat Premium 16其实是等oracle安装好后直接就能连了毫无问题。 pb9呢。因为需要32驱动的oci.dll&#xff0c;所以需要下载instantclient-basic-win32-11.1.0.7.0解压…

第七章 MobileNetv2网络详解

系列文章目录 第一章 AlexNet网络详解 第二章 VGG网络详解 第三章 GoogLeNet网络详解 第四章 ResNet网络详解 第五章 ResNeXt网络详解 第六章 MobileNetv1网络详解 第七章 MobileNetv2网络详解 第八章 MobileNetv3网络详解 第九章 ShuffleNetv1网络详解 第十章…

【C++篇】动态分配内存

友情链接&#xff1a;C/C系列系统学习目录 知识点内容正确性以C Primer&#xff08;中文版第五版&#xff09;、C Primer Plus&#xff08;中文版第六版&#xff09;为标准&#xff0c;同时参考其它各类书籍、优质文章等&#xff0c;总结归纳出个人认为较有逻辑的整体框架&…

EBU5476 Microprocessor System Design 知识点总结_6 Timer

Timer 想让程序定时运行&#xff0c;比如led 1s闪烁一次。如何做到&#xff1f; 第一种方法是愚蠢的delay延时&#xff0c;我自己估算一下&#xff1a;嗯&#xff0c;delay(2000)差不多1s。然后在程序中delay&#xff0c;点亮&#xff0c;delay&#xff0c;熄灭…… 太浪费资…

【C++篇】友元、运算符重载与多态

友情链接&#xff1a;C/C系列系统学习目录 知识总结顺序参考C Primer Plus&#xff08;第六版&#xff09;和谭浩强老师的C程序设计&#xff08;第五版&#xff09;等&#xff0c;内容以书中为标准&#xff0c;同时参考其它各类书籍以及优质文章&#xff0c;以至减少知识点上的…

【滤波】粒子滤波

%matplotlib inline#format the book import book_format book_format.set_style()动机 现在的问题是&#xff1a;我们要跟踪移动中的物体&#xff0c;也许这些物体是战斗机和导弹&#xff0c;或者是在场地里打球的人。但这都没有太大差别。那么&#xff0c;我们所学的滤波器中…

数据发布到WordPress网站,变为已计划、定时或Scheduled

采集数据发布到WordPress网站&#xff0c;但数据没有在前端页面显示&#xff0c;在wordpress后台查看变为已计划、定时或Scheduled。 这个是由于发布的时间变成未来时间导致的&#xff0c;先核实下设置的发布时间是否正确。 如果正确&#xff0c;那就是时区的问题导致时间变成…

Vue--》Vue3打造可扩展的项目管理系统后台的完整指南(六)

今天开始使用 vue3 ts 搭建一个项目管理的后台&#xff0c;因为文章会将项目的每一个地方代码的书写都会讲解到&#xff0c;所以本项目会分成好几篇文章进行讲解&#xff0c;我会在最后一篇文章中会将项目代码开源到我的GithHub上&#xff0c;大家可以自行去进行下载运行&…

翻过那座山——Gitlab流水线任务疑难之编译有子模块的项目指南

&#x1f4e2;欢迎点赞 &#xff1a;&#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff0c;赐人玫瑰&#xff0c;手留余香&#xff01;&#x1f4e2;本文作者&#xff1a;由webmote 原创&#x1f4e2;作者格言&#xff1a;新的征程&#xff0c;我们面对的不是…

【C/C++】详解 类和对象的概念、基本用法

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

2023-01-31 LightDB Agent安装.md

LightDB Agent安装 简介 LightDB Enterprise Manager(即 LightDB数据库监控管理平台&#xff0c;下文均简称为LightDB EM)是一个综合性的数据库监控和管理系统&#xff0c; 旨在满足数据库用户的需求&#xff0c;提供强大的图形界面&#xff0c;简化了对LightDB数据库的维护和使…

<C语言> 函数与递归

函数 1.函数的分类 库函数自定义函数 1.1 库函数 C语言提供了许多库函数&#xff08;library functions&#xff09;来简化开发过程并提供常用功能的实现。库函数是预先编写好的函数&#xff0c;可以通过调用这些函数来执行特定的任务。 为什么会有库函数&#xff1f; ​…

Docker中为RabbitMQ安装rabbitmq_delayed_message_exchange插件

Docker中为RabbitMQ安装rabbitmq_delayed_message_exchange插件 1、前言1、下载插件2、拷贝插件到RabbitMQ容器3、启用插件 1、前言 rabbitmq_delayed_message_exchange是一款向RabbitMQ添加延迟消息传递&#xff08;或计划消息传递&#xff09;的插件。 插件下载地址&#x…

Java Web框架对比:选择适合你的项目

导言 选择合适的Java Web框架是开发成功的关键之一。本文将详细对比几个常见的Java Web框架&#xff0c;包括Spring MVC、JavaServer Faces (JSF)、Struts、Play Framework、Apache Wicket和Vaadin&#xff0c;并分析它们的特点、优缺点&#xff0c;以帮助您做出明智的选择。 …

IP笔记全部整合(参考)

高级网络工程师 HCIA回顾1、网络基础2、动态路由协议3、路由认证4、路由控制&#xff08;AD metric &#xff09; 一、知识巩固二、场景模拟1、获取IP地址1.1 DHCP --- 动态主机配置协议1.1.1 DHCP客户端1.1.2 DHCP服务器1.1.3 DHCP客户端1.1.4 DHCP服务器 2、打开浏览器3、路由…

C语言全章总结

数据类型 ​ 用不同数据类型所定义的变量所占空间大小不一样&#xff0c;定义的变量不是保存于数据类型中&#xff0c;而是因为只有定义了该数据类型的变量才能保存数据。 一、整型 1、整型&#xff08;int&#xff09; 四字节&#xff0c;默认有符号&#xff08;-231-231-1…

Spark中python和jvm的通信杂谈--ArrowConverter

背景 要提起ArrowConverters&#xff0c;就得说起Arrow这个项目&#xff0c;该项目的初衷是加速进程间的数据交换&#xff0c;从目前的社区发展以及它的周边来看&#xff0c;其实是一个很不错的项目。 那为什么Spark要引入Arrow呢&#xff1f;其实还得从Pyspark中python和jvm的…

io.netty学习(十)Netty 程序引导类

目录 前言 引导程序类 AbstractBootStrap 抽象类 Bootstrap 类 ServerBootstrap 类 引导服务器 1、实例化引导程序类 2、设置 EventLoopGroup 3、指定 Channel 类型 4、指定 ChannelHandler 5、设置 Channel 选项 6、绑定端口启动服务 引导客户端 1、实例化引导程…

设计模式之代理模式笔记

设计模式之代理模式笔记 说明Proxy(代理)目录代理模式静态代理示例类图买火车票的接口火车站类代售点类测试类 JDK动态代理买火车票的接口火车站类获取代理对象的工厂类测试类 CGLIB动态代理火车站类代理工厂类测试类 三种代理对比优缺点 说明 记录下学习设计模式-代理模式的写…