C++上机_日期问题
1.求下一天的年月日
问题
已知某天的年月日,求下一天的年月日。
思路
参数:年,月,日(int)
返回值:void
处理:根据参数所给年月日,求下一天的年月日
思路:
1、定义一个数组,存储月份和天数的对应关系
2、处理闰年:(因为是不是闰年会影响二月份的天数)
再封装一个函数判断是否某年是闰年(可被4整除但不能被400整除或可被100整除)
若是闰年,2月份有29日
若不是闰年:2月份有28日
3.day++; 但如果day>当月天数,day=1,month++;
再判断是否month>12,是则让month=1,year++
代码:
#include<iostream>
using namespace std;
bool isLeap(int month);
void NextDay(int& year,int& month,int& day){//用一个数组存储月份和天数的对应关系int dayOfMonth[]={0,31,28,31,30,31,30,31,31,30,31,30,31};//判断是否为闰年(会影响二月的天数)if(isLeap(year)){dayOfMonth[2]=29;}else{dayOfMonth[2]=28;}day++;if(day>dayOfMonth[month]){day=1;month++;}if(month>12){month=1;year++;}
}
/*
返回值:bool
参数:int year
处理:判断是否为闰年,返回对应的bool
*/
bool isLeap(int year){if(year%400==0||year%4==0&&year%100!=0){return true;}return false;
}
int main(){//年,月,日int year=1900;int month=2;int day=28;printf("今天是%d年%d月%d日\n",year,month,day);//调用NextDayNextDay(year,month,day);printf("明天是%d年%d月%d日\n",year,month,day);return 0;
}
结果:
1.测试1900年2月28日输出:
今天是1900年2月28日
明天是1900年3月1日
2.测试2020年2月28日输出:
今天是2020年2月28日
明天是2020年2月29日
如若能够与以上结果输出一致,则表面代码没问题。
2.今年的第几天
对应的试题链接: 打印日期_牛客题霸_牛客网
题目:
输入年、月、日,计算该天是本年的第几天。
输出描述:
包括三个整数年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31)。
输出描述:
输入可能有多组测试数据,对于每一组测试数据, 输出一个整数,代表Input中的年、月、日对应本年的第几天。
示例:
输入: 1990 9 20 2000 5 1 输出: 263 122
代码
#include<iostream>
using namespace std;int main(){//输入年月日int year,month,day;while(scanf("%d%d%d\n",&year,&month,&day)!=EOF){//定义该年第一天的年,月int curMonth=1;int curDay=1;//用来统计结果int count=1;while(1){if(curMonth==month&&curDay==day){break;}//下一天NextDay(year,curMonth,curDay);count++;}printf("%d\n",count);}}
结果:

3.打印日期
链接: 打印日期_牛客题霸_牛客网
题目:
给出年分m和一年中的第n天,算出第n天是几月几号
输入描述:
输入包括两个整数y(1<=y<=3000),n(1<=n<=366)。
输出描述:
可能有多组测试数据,对于每组数据, 按 yyyy-mm-dd的格式将输入中对应的日期打印出来。
输入: 2000 3 2000 31 2000 40 2000 60 2000 61 2001 60 输出: 2000-01-03 2000-01-31 2000-02-09 2000-02-29 2000-03-01 2001-03-01
此题主要考察我们规范化的输入输出函数。
int main() {//输入年份和第n天int year, n;while (scanf("%d%d\n", &year, &n) != EOF) {//定义该年第一天的年,月int curMonth = 1;int curDay = 1;//用来统计结果for (int i = 1; i < n; i++) {NextDay(year, curMonth, curDay);}printf("%04d-%02d-%02d\n", year, curMonth, curDay);}
}
对于上面的代码我们进行分析:
1.由于题目要求我们的输出格式为:2000-01-03
所以我们使用了printf("%04d-%02d-%02d\n", year, curMonth, curDay);
其中4表示数据的最小输出宽度为4,写04则表示若输出不足4位,则前面用0补充。
2.接着我们来讨论,要找到第n天,为什么for循环是for(int i = 1; i < n; i++)? ===》因为第一天指的是当天,所以i初始为1,而若要求第2天时,即n=2,这样nextDay会执行1次,也就是第二天了。
故for循环为:(int i=1;i<n;i++)
3.要学习上面是实现多组数据的输入的。即:
while(scanf("%d%d\n", &year, &n) != EOF)
结果:
4.日期累加
链接:日期累加_牛客题霸_牛客网
描述
设计一个程序能计算一个日期加上若干天后是什么日期。
输入描述:
输入第一行表示样例个数m,接下来m行每行四个整数分别表示年月日和累加的天数。
输出描述:
输出m行,每行按yyyy-mm-dd的个数输出。
示例:
输入: 1 2008 2 3 100 输出: 2008-05-13
代码
输入:
样例个数 count
日期 year month day n
处理:这个日期加上n天之后是什么样子,
例如今天是1号,3天后,n=3,三天后应该是4号,即nextday要被执行3次,
故for循环应设计为:
for(int i=1;i<=n;i++)
int main() {//表示要输入的行数int row = 0;int year, month, day, n;scanf("%d\n", &row);//表示有count行数据要处理for (int i = 0; i <row; i++) {scanf("%d%d%d%d\n", &year, &month, &day, &n);for (int i = 1; i <= n; i++) {NextDay(year, month,day);}printf("%04d-%02d-%02d\n", year, month, day);}
}
要注意输出时写上换行符,这些OJ系统主要考察的就是这些细节。
结果:

知识点:
值传递和引用
1.我们每调用一个新的函数,就会调用一个新的栈帧
注意函数调用栈帧,调用时分配,返回时销毁。
2.使用值传递,参数传递是克隆出来的,即NextDay()中参数的变化不会改变调用它的main()中实参的值。
但我们现在的需求就是要让NextDay()中参数的改动对与之对应的main()中的实参有影响,故我们使用另一种参数传递的方式:引用。
3.引用,即起别名。使用引用方式传递的参数,被调函数NextDay()中对参数的操作实际上改变的是main()函数的栈帧里面的内容。
那怎么表示引用呢?
==》&出现在定义或形参当中,就表示引用。但如果出现在其他位置,表示取地址。
EOF
在C++中,EOF(End of File)是一个常量,用来表示输入流的结束。它通常用于检测输入是否结束。scanf会在无法读取更多有效数据时返回EOF。
在上面程序中,while(scanf("%d%d%d\n",&year,&month,&day)!=EOF)这行代码的作用是不断读取用户输入的年月日,直到输入结束为止。
for循环的语法:
cpp复制编辑for (initialization; condition; increment) {// 循环体
}
-
初始化:
initialization只会在第一次进入循环时执行一次,用来设置循环控制变量的初始值。 -
条件判断:
condition在每次循环开始之前都会被执行一次,判断条件是否成立(即是否为真)。如果条件为假,循环就会结束。
-
递增:在每次循环体执行完毕后执行。
相关文章:
C++上机_日期问题
1.求下一天的年月日 问题 已知某天的年月日,求下一天的年月日。 思路 参数:年,月,日(int) 返回值:void 处理:根据参数所给年月日,求下一天的年月日 思路: 1、定义一个数组&a…...
应对DeepSeek总是服务器繁忙的解决方法
最近由于访问量过大,DeepSeek服务器官网经常弹出:“服务器繁忙,请稍后再试”的提示,直接卡成PPT怎么办?服务器繁忙直接看到视觉疲劳: 解决DeepSeek卡顿问题 DeepSeek使用卡顿问题,是因为访问量…...
web第三次作业
弹窗案例 1.首页代码 <!DOCTYPE html><html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>综合案例</title><st…...
力扣 438.找到字符串中所有字母异位词
题目: 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 示例 1: 输入: s "cbaebabacd", p "abc" 输出: [0,6] 解释: 起始索引等于 0 的子串是 "cb…...
【Python】Python入门——基础语法及顺序语句
Python入门——基础语法及顺序语句 官方文档地址:https://docs.python.org/zh-cn/3/tutorial/index.htmlPython 是一门易于学习、功能强大的编程语言。它提供了高效的高级数据结构,还能简单有效地面向对象编程。Python 优雅的语法和动态类型以及解释型语…...
2.2 反向传播:神经网络如何“学习“?
一、神经网络就像小学生 想象一个刚学算术的小学生,老师每天布置练习题,学生根据例题尝试解题,老师批改后指出错误。神经网络的学习过程与此相似: 输入层:相当于练习题(如数字图片)输出层&…...
frp-tool,客户端frp命令行工具
在日常开发和运维过程中,端口转发和配置管理是常见的需求。 如果有自己一台服务器,并且已经开放好端口,配置好token后,这个工具一定能帮到你。 今天给大家推荐一款非常好用的frpc命令行工具,它是一个用Python编写的命令…...
【学术投稿-第五届应用数学、建模与智能计算国际学术会议】CSS伪类选择器深度解析:分类、应用与技巧
大会官网:www.cammic.org 大会时间:2025年3月21-23日 大会地点:中国-上海(上海大学宝山校区北大门乐乎新楼) 简介 第五届应用数学、建模与智能计算(CAMMIC 2025)将于2025年3月21-23日在中国…...
常用查找算法整理(顺序查找、二分查找、哈希查找、二叉排序树查找、平衡二叉树查找、红黑树查找、B树和B+树查找、分块查找)
常用的查找算法: 顺序查找:最简单的查找算法,适用于无序或数据量小的情况,逐个元素比较查找目标值。二分查找:要求数据有序,通过不断比较中间元素与目标值,将查找范围缩小一半,效率…...
Express 中 res 响应方法详解
一、res.send() 1. 功能 该方法用于发送各种类型的响应,包括字符串、对象、数组、Buffer 等。它会自动设置响应的 Content-Type 头。 2. 示例代码 const express require("express");const app express();app.get("/", (req, res) > {…...
DeepAR:一种用于时间序列预测的深度学习模型
介绍 DeepAR是一种基于递归神经网络(RNN)的时间序列预测模型,由亚马逊在2017年提出。它特别适用于处理多变量时间序列数据,并能够生成概率预测。DeepAR通过联合训练多个相关时间序列来提高预测性能,从而在实际应用中表…...
权限模型深度解析:RBAC vs ABAC vs PBAC vs TBAC,如何选择最适合的方案?
在数字化系统的安全架构中,权限管理如同一把“隐形钥匙”,既需精准控制访问边界,又要灵活适配复杂多变的业务需求。从传统的角色划分到动态属性策略,从合规驱动的集中管控到任务流程的临时授权,RBAC、ABAC、PBAC、TBAC…...
Windows逆向工程入门之堆栈结构与信息获取
公开视频 -> 链接点击跳转公开课程博客首页 -> 链接点击跳转博客主页 目录 1. 堆栈结构基础 堆栈的主要操作: 2. 代码功能解析 2.1 加载 ntdll.dll 2.2 获取 NtQueryInformationThread 函数指针 2.3 调用 NtQueryInformationThread 获取线程信息…...
【c++初阶】类和对象②默认成员函数以及运算符重载初识
目录 编辑 默认成员函数: 构造函数 构造函数的特性: 析构函数: 拷贝构造函数: 1. 拷贝构造函数是构造函数的一个重载形式。 2. 拷贝构造函数的参数只有一个且必须是类类型对象的引用,使用传值方式编译器直接报…...
【做一个微信小程序】校园地图页面实现
前言 上一个教程我们实现了小程序的一些的功能,有背景渐变色,发布功能有的呢,已支持图片上传功能,表情和投票功能开发中(请期待)。下面是一个更高级的微信小程序实现,包含以下功能:…...
成熟开发者需具备的能力
精业务 • 指深入理解和熟悉所开发软件的业务逻辑和需求。 • 开发者需要明确软件要解决的问题、面向的用户群体以及核心功能等。 • 精业务有助于开发者更好地设计系统架构、编写符合业务需求的代码,并能根据业务变化灵活调整开发计划。 懂原理 • 指掌握编程的基…...
计算机毕业设计--基于深度学习技术(Yolov11、v8、v7、v5)算法的高效人脸检测模型设计与实现(含Github代码+Web端在线体验界面)
基于深度学习技术(Yolov11、v8、v7、v5)算法的高效人脸检测模型 Yolo算法应用之《基于Yolo的花卉识别算法模型设计》,请参考这篇CSDN作品👇 计算机毕业设计–基于深度学习技术(Yolov11、v8、v7、v5)算法的…...
力扣做题记录 (二叉树)
二叉树 打算先来了解二叉树基础,都是简单题,目的是熟悉代码格式和解题基础思路。 1、二叉树最大深度 二叉树最大深度 方法一、深度搜索 直接用原函数做递归,比较简单 /*** Definition for a binary tree node.* struct TreeNode {* …...
机试刷题_字符串的排列【python】
题目:字符串的排列 from os import dup # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # param str string字符串 # return string字符串一维数组 # class Solution:def backtrack(self,res,state,choi…...
百度智能云—千帆 ModelBuilder API的简单调用(Java)
百度简介 百度(Baidu)是拥有强大互联网基础的领先AI公司。百度愿景是:成为最懂用户,并能帮助人们成长的全球顶级高科技公司。 “百度”二字,来自于八百年前南宋词人辛弃疾的一句词:众里寻他千百度。这句话…...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
从物理机到云原生:全面解析计算虚拟化技术的演进与应用
前言:我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM(Java Virtual Machine)让"一次编写,到处运行"成为可能。这个软件层面的虚拟化让我着迷,但直到后来接触VMware和Doc…...
echarts使用graphic强行给图增加一个边框(边框根据自己的图形大小设置)- 适用于无法使用dom的样式
pdf-lib https://blog.csdn.net/Shi_haoliu/article/details/148157624?spm1001.2014.3001.5501 为了完成在pdf中导出echarts图,如果边框加在dom上面,pdf-lib导出svg的时候并不会导出边框,所以只能在echarts图上面加边框 grid的边框是在图里…...

