当前位置: 首页 > news >正文

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.求下一天的年月日 问题 已知某天的年月日&#xff0c;求下一天的年月日。 思路 参数&#xff1a;年&#xff0c;月&#xff0c;日&#xff08;int) 返回值&#xff1a;void 处理&#xff1a;根据参数所给年月日&#xff0c;求下一天的年月日 思路: 1、定义一个数组&a…...

应对DeepSeek总是服务器繁忙的解决方法

最近由于访问量过大&#xff0c;DeepSeek服务器官网经常弹出&#xff1a;“服务器繁忙&#xff0c;请稍后再试”的提示&#xff0c;直接卡成PPT怎么办&#xff1f;服务器繁忙直接看到视觉疲劳&#xff1a; 解决DeepSeek卡顿问题 DeepSeek使用卡顿问题&#xff0c;是因为访问量…...

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.找到字符串中所有字母异位词

题目&#xff1a; 给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的 异位词 的子串&#xff0c;返回这些子串的起始索引。不考虑答案输出的顺序。 示例 1: 输入: s "cbaebabacd", p "abc" 输出: [0,6] 解释: 起始索引等于 0 的子串是 "cb…...

【Python】Python入门——基础语法及顺序语句

Python入门——基础语法及顺序语句 官方文档地址&#xff1a;https://docs.python.org/zh-cn/3/tutorial/index.htmlPython 是一门易于学习、功能强大的编程语言。它提供了高效的高级数据结构&#xff0c;还能简单有效地面向对象编程。Python 优雅的语法和动态类型以及解释型语…...

2.2 反向传播:神经网络如何“学习“?

一、神经网络就像小学生 想象一个刚学算术的小学生&#xff0c;老师每天布置练习题&#xff0c;学生根据例题尝试解题&#xff0c;老师批改后指出错误。神经网络的学习过程与此相似&#xff1a; 输入层&#xff1a;相当于练习题&#xff08;如数字图片&#xff09;输出层&…...

frp-tool,客户端frp命令行工具

在日常开发和运维过程中&#xff0c;端口转发和配置管理是常见的需求。 如果有自己一台服务器&#xff0c;并且已经开放好端口&#xff0c;配置好token后&#xff0c;这个工具一定能帮到你。 今天给大家推荐一款非常好用的frpc命令行工具&#xff0c;它是一个用Python编写的命令…...

【学术投稿-第五届应用数学、建模与智能计算国际学术会议】CSS伪类选择器深度解析:分类、应用与技巧

大会官网&#xff1a;www.cammic.org 大会时间&#xff1a;2025年3月21-23日 大会地点&#xff1a;中国-上海&#xff08;上海大学宝山校区北大门乐乎新楼&#xff09; 简介 第五届应用数学、建模与智能计算&#xff08;CAMMIC 2025&#xff09;将于2025年3月21-23日在中国…...

常用查找算法整理(顺序查找、二分查找、哈希查找、二叉排序树查找、平衡二叉树查找、红黑树查找、B树和B+树查找、分块查找)

常用的查找算法&#xff1a; 顺序查找&#xff1a;最简单的查找算法&#xff0c;适用于无序或数据量小的情况&#xff0c;逐个元素比较查找目标值。二分查找&#xff1a;要求数据有序&#xff0c;通过不断比较中间元素与目标值&#xff0c;将查找范围缩小一半&#xff0c;效率…...

Express 中 res 响应方法详解

一、res.send() 1. 功能 该方法用于发送各种类型的响应&#xff0c;包括字符串、对象、数组、Buffer 等。它会自动设置响应的 Content-Type 头。 2. 示例代码 const express require("express");const app express();app.get("/", (req, res) > {…...

DeepAR:一种用于时间序列预测的深度学习模型

介绍 DeepAR是一种基于递归神经网络&#xff08;RNN&#xff09;的时间序列预测模型&#xff0c;由亚马逊在2017年提出。它特别适用于处理多变量时间序列数据&#xff0c;并能够生成概率预测。DeepAR通过联合训练多个相关时间序列来提高预测性能&#xff0c;从而在实际应用中表…...

权限模型深度解析:RBAC vs ABAC vs PBAC vs TBAC,如何选择最适合的方案?

在数字化系统的安全架构中&#xff0c;权限管理如同一把“隐形钥匙”&#xff0c;既需精准控制访问边界&#xff0c;又要灵活适配复杂多变的业务需求。从传统的角色划分到动态属性策略&#xff0c;从合规驱动的集中管控到任务流程的临时授权&#xff0c;RBAC、ABAC、PBAC、TBAC…...

Windows逆向工程入门之堆栈结构与信息获取

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 1. 堆栈结构基础 堆栈的主要操作&#xff1a; 2. 代码功能解析 2.1 加载 ntdll.dll 2.2 获取 NtQueryInformationThread 函数指针 2.3 调用 NtQueryInformationThread 获取线程信息…...

【c++初阶】类和对象②默认成员函数以及运算符重载初识

目录 ​编辑 默认成员函数&#xff1a; 构造函数 构造函数的特性&#xff1a; 析构函数&#xff1a; 拷贝构造函数&#xff1a; 1. 拷贝构造函数是构造函数的一个重载形式。 2. 拷贝构造函数的参数只有一个且必须是类类型对象的引用&#xff0c;使用传值方式编译器直接报…...

【做一个微信小程序】校园地图页面实现

前言 上一个教程我们实现了小程序的一些的功能&#xff0c;有背景渐变色&#xff0c;发布功能有的呢&#xff0c;已支持图片上传功能&#xff0c;表情和投票功能开发中&#xff08;请期待&#xff09;。下面是一个更高级的微信小程序实现&#xff0c;包含以下功能&#xff1a;…...

成熟开发者需具备的能力

精业务 • 指深入理解和熟悉所开发软件的业务逻辑和需求。 • 开发者需要明确软件要解决的问题、面向的用户群体以及核心功能等。 • 精业务有助于开发者更好地设计系统架构、编写符合业务需求的代码&#xff0c;并能根据业务变化灵活调整开发计划。 懂原理 • 指掌握编程的基…...

计算机毕业设计--基于深度学习技术(Yolov11、v8、v7、v5)算法的高效人脸检测模型设计与实现(含Github代码+Web端在线体验界面)

基于深度学习技术&#xff08;Yolov11、v8、v7、v5&#xff09;算法的高效人脸检测模型 Yolo算法应用之《基于Yolo的花卉识别算法模型设计》&#xff0c;请参考这篇CSDN作品&#x1f447; 计算机毕业设计–基于深度学习技术&#xff08;Yolov11、v8、v7、v5&#xff09;算法的…...

力扣做题记录 (二叉树)

二叉树 打算先来了解二叉树基础&#xff0c;都是简单题&#xff0c;目的是熟悉代码格式和解题基础思路。 1、二叉树最大深度 二叉树最大深度 方法一、深度搜索 直接用原函数做递归&#xff0c;比较简单 /*** Definition for a binary tree node.* struct TreeNode {* …...

机试刷题_字符串的排列【python】

题目&#xff1a;字符串的排列 from os import dup # # 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规定的值即可 # # # param str string字符串 # return string字符串一维数组 # class Solution:def backtrack(self,res,state,choi…...

百度智能云—千帆 ModelBuilder API的简单调用(Java)

百度简介 百度&#xff08;Baidu&#xff09;是拥有强大互联网基础的领先AI公司。百度愿景是&#xff1a;成为最懂用户&#xff0c;并能帮助人们成长的全球顶级高科技公司。 “百度”二字&#xff0c;来自于八百年前南宋词人辛弃疾的一句词&#xff1a;众里寻他千百度。这句话…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

django filter 统计数量 按属性去重

在Django中&#xff0c;如果你想要根据某个属性对查询集进行去重并统计数量&#xff0c;你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求&#xff1a; 方法1&#xff1a;使用annotate()和Count 假设你有一个模型Item&#xff0c;并且你想…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系&#xff0c;以下是深入解析&#xff1a; 门铃FIFO溢出的本质 在RapidIO系统中&#xff0c;门铃消息FIFO是硬件控制器内部的缓冲区&#xff0c;用于临时存储接收到的门铃消息&#xff08;Doorbell Message&#xff09;。…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型&#xff08;Vision-Language Models, VLMs&#xff09;&#xff0c;为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展&#xff0c;机器人仍难以胜任复杂的长时程任务&#xff08;如家具装配&#xff09;&#xff0c;主要受限于人…...