全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之计数器与累加器(一)
学习背景:
在现实生活中一些需要计数的场景下我们会用到计数器,如空姐手里记录乘客的计数器,跳绳手柄上的计数器等。累加器是累加器求和,以得到最后的结果。计数器和累加器它们虽然是基础知识,但是应用广泛,接下来分别介绍计数器与累加器,本文章先介绍计数器。
(一)、计数器:i=i+1
语句"i=i+1;"每执行一次,i的值就增加1。这样变量i可以起到统计次数的作用,有计数的功能。赋值符号"="左右两边的变量“i”不能从数值的角度去理解,它是存储空间的概念,就好比向水盆中加水,然后“+1”就表示拿水瓢往水盆中加水,“=”右边的“i”表示拿水瓢加水前的状态,“=”左右的“i”表示拿水瓢加水之后的状态。该语句运行一次就表示往水盆里加了一瓢水,最后往水盆里加了多少瓢水,只要看i最后的取值就可以了。其执行过程如下:
程序语句 | i的值 |
i=0; | 0 |
i=i+1 | i(1) <- 0+1 |
i=i+1 | i(2) <- 1+1 |
i=i+1 | i(3) <- 2+1 |
i=i+1 | i(4) <- 3+1 |
i=i+1 | i(5) <- 4+1 |
温馨提示:
1、计数器在计算前需要清零,即i要赋值为0。
2、计算机程序中,变量可以先定义,再赋值,也可以在定义的同时进行赋值,在定义变量的同时赋初值称为变量初始化。在程序设计中,涉及累加、计数等情况时需要将变量初始化,否则计算机会给变量随机赋一个值,对计算结果有一定影响。
"i=i+1"通常简写利用成"i++"与"++i"两种形式,可单独成句。
1)"i++"在赋值和参与运算的过程中,先运算再自增,如语句在"x=i++;"的执行顺序是先将i的值赋值给x,然后再执行"i++"自增运算。
2)"++i"在赋值和参与运算的过程中,先自增再运算,如语句"x=++i;"的执行顺序是先执行"++i"自增运算,再进行赋值。
其执行过程如下:
程序语句 | x的值 | i的值 |
i=1; x=i++; | 1 | 2 |
i=1; x=++i; | 2 | 2 |
与计数器类似,"i=i-1",也可以简写成"i--"或者"--i",表示自减运算,它们可以单独成句,其意义与"i=i-1"的含义是一样的。但是,涉及赋值时,就会不同,"x=i--;"是先赋值再运算。而"x=--i;"是先运算再赋值。
实战训练:
阅读以下程序,写出程序运行结果。
#include<bits/stdc++.h>
using namespace std;
int main(){int x,y,a=50,b=50;//定义变量x、y、a、b,定义a和b时同时初始化,初始值均为50 x=a++;//先赋值再自增y=++b;//先自增再赋值 cout<<"x: "<<x<<",y:"<<y<<endl;cout<<"a: "<<a<<",b:"<<b<<endl;x=a--;//先赋值再自减 y=--b;//先自减再赋值 cout<<"x: "<<x<<",y:"<<y<<endl;cout<<"a: "<<a<<",b:"<<b<<endl;return 0;
}
程序分析:
题目中的整型变量a,b的初始值均为50,第5行将a的值赋值给x之后,a再进行自增运算,此时x的值为50,a的值为51;第6行b先进行自增运算,再赋值,此时b的值为51,y的值也为51。同理程序第9行先进行赋值再自减,x的值为51,a的值为50,第10行b的值先自减,再赋值给y,b的值为50,y的值也为50。
输出结果:
x: 50,y:51
a: 51,b:51
x: 51,y:50
a: 50,b:50
相关文章:
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之计数器与累加器(一)
学习背景: 在现实生活中一些需要计数的场景下我们会用到计数器,如空姐手里记录乘客的计数器,跳绳手柄上的计数器等。累加器是累加器求和,以得到最后的结果。计数器和累加器它们虽然是基础知识,但是应用广泛࿰…...
红黑树(Red-Black Tree)
一、概念 红黑树(Red Black Tree)是一种自平衡的二叉搜索树,通过添加颜色信息来确保在进行插入和删除操作时,树的高度保持在对数级别,从而保证了查找、插入和删除操作的时间复杂度为 O(log n)。这种树可以很好地解决普…...
火电厂可视化助力提升运维效率
图扑智慧火电厂综合管理平台实现对火电厂关键设备和系统的实时监控和数据分析。图扑可视化不仅优化了运维流程,还增强了安全管理,有效提升了电厂整体运营效率。...
application.yml 和 bootstrap.yml
在 Spring Boot 中,application.yml 和 bootstrap.yml 都是用来配置应用程序的属性文件,通常用于环境配置、服务配置等。但是,它们有一些不同的用途和加载顺序。以下是它们之间的主要区别: 1. application.yml: 主要…...
电子应用设计方案-49:智能拖把系统方案设计
智能拖把系统方案设计 一、引言 随着人们生活水平的提高和对清洁效率的追求,智能拖把作为一种创新的清洁工具应运而生。本方案旨在设计一款功能强大、操作便捷、清洁效果出色的智能拖把系统。 二、系统概述 1. 系统目标 - 实现自动清洁地面,减轻用户劳…...
Model Context Protocol 精选资源列表
Model Context Protocol 精选资源列表 Model Context Protocol 精选资源列表什么是MCP?教程社区说明服务器实现📂 浏览器自动化☁️ 云平台💬 社交👤 数据平台🗄️ 数据库💻 开发者工具🧮 数据科…...
Windows 11 12 月补丁星期二修复了 72 个漏洞和一个零日漏洞
微软于 2024 年 12 月为 Windows 11 发布的补丁星期二修复了其产品生态系统中的 72 个漏洞,包括 Windows 通用日志文件系统驱动程序中一个被积极利用的零日漏洞。 这个严重漏洞可以通过基于堆的缓冲区溢出授予攻击者系统权限,使其成为此版本中优先级最高…...
Python毕业设计选题:基于Hadoop 的国产电影数据分析与可视化_django+spider
开发语言:Python框架:djangoPython版本:python3.7.7数据库:mysql 5.7数据库工具:Navicat11开发软件:PyCharm 系统展示 管理员登录 管理员功能界面 用户管理 免费电影管理 在线论坛 留言反馈 看板展示 系统…...
蓝桥杯我来了
最近蓝桥杯报名快要截止了,我们学校开始收费了,我们学校没有校赛,一旦报名缴费就是省赛,虽然一早就在官网上报名了,但是一直在纠结,和家人沟通,和朋友交流,其实只是想寻求外界的支持…...
大模型qiming面试内容整理-编码能力评估
编码能力评估是大模型相关岗位面试中非常关键的一环,面试官通常希望通过这个环节了解候选人对编程语言、算法与数据结构的掌握情况,以及其在实践中解决实际问题的能力。以下是编码能力评估的常见内容和类型,特别是针对机器学习、大模型和深度学习方向: 编程语言熟练度 ● P…...
Vivado ILA数据导出MATLAB分析
目录 ILA数据导出 分析方式一 分析方式二 有时候在系统调试时,数据在VIVADO窗口获取的信息有限,可结合MATLAB对已捕获的数据进行分析处理 ILA数据导出 选择信号,单击右键后,会有export ILA DATA选项,将其保存成CS…...
Linux内核 -- 字符设备之read write poll基本实现
Linux字符设备:read、write和poll函数实现及完整代码 1. read函数 原型 ssize_t read(struct file *file, char __user *buf, size_t count, loff_t *pos);实现步骤 检查用户缓冲区:使用copy_to_user将数据从内核空间复制到用户空间。返回已读取的字…...
linux部署ansible自动化运维
ansible自动化运维 1,编写ansible的仓库(比赛已经安装,无需关注) 1、虚拟机右击---设置---添加---CD/DVD驱动器---完成---确定 2、将ansible.iso的光盘连接上(右下角呈绿色状态) 3、查看光盘挂载信息 df -h…...
springboot421社区医疗服务可视化系统(论文+源码)_kaic
摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装社区医疗服务可视化系统软件来发挥其高效地信息处理的作用…...
vue渲染时闪光白屏问题怎么解决(笔记)
Vue渲染时出现闪光白屏问题,可能是因为页面内容需要较长时间才能加载完成,而在加载期间,页面会显示白屏或者空白内容,给用户体验带来负面影响。 解决方法: 为标签绑定 v-cloak 在样式中写 v-clock {displaÿ…...
duxapp 2024-12-09 更新 PullView可以弹出到中间,优化CLI使用体验
UI库 修复 Button 禁用状态失效的问题Modal 组件即将停用,请使用 PullView 基础库 PullView side 新增 center 指定弹出到屏幕中间PullView 新增 duration 属性,指定动画时长新增 useBackHandler hook 用来阻止安卓端点击返回键 RN端 修复 windows …...
vue调试插件vue Devtools下载安装
Vue.js Devtools_6.6.3_Chrome插件下载_极简插件 进图官网点击推荐下载下载该调试工具 解压缩找到扩展程序开启开发者模式 将解压缩的文件拖拽到该页面空白处,点击添加扩展程序 点击详情允许访问文件网址 页面右键检查可以发现已经成功添加该页面调试插件...
.net core使用AutoMapper
AutoMapper 是一个用于 .NET 平台的对象映射工具,它简化了不同对象类型之间的转换过程。在软件开发中,尤其是在分层架构的应用程序里,常常需要在不同的对象模型之间进行数据传递,例如从数据库实体到视图模型、DTO(数据…...
HTTP头注入
注入类漏洞经久不衰,多年保持在owasp Top 10的首位。今天就聊聊那些被人遗忘的http头注入。用简单的实际代码进行演示,让每个人更深刻的去认识该漏洞。 3|0HOST注入 在以往http1.0中并没有host字段,但是在http1.1中增加了host字段ÿ…...
110.【C语言】编写命令行程序(1)
目录 1.前置知识 "命令"的含义 运行C语言程序 2.介绍 main函数的参数 实验1 执行结果 实验2 执行结果 修改代码 实验3 分析 方法:遍历数组argv[]中的所有参数 执行结果 修改代码 执行结果 1.前置知识 "命令"的含义 WINR输入cmd,在cmd窗口下…...
k8s 之 StatefulSet
深入理解StatefulSet(一):拓扑状态 k8s有状态与无状态的区别 无状态服务:deployment Deployment被设计用来管理无状态服务的pod,每个pod完全一致.什么意思呢? 无状态服务内的多个Pod创建的顺序是没有顺序的. 无状态服务内的多…...
PTA 7-2 从身份证号码中提取出出生年月
分数 12 作者 崔孝凤 单位 山东理工大学 输入一个18位的身份证号码,提取出年份和月份并输出,请判断输入的号码是否是18位,如果不是请提示"Invalid data,input again!",并重新输入新的号码。 输入格式: 输入一个18位…...
Plugin - 插件开发04_Spring Boot中的SPI机制与Spring Factories实现
文章目录 Pre方案概览使用插件的好处Spring Boot中的SPI机制与Spring Factories实现1. Spring Boot中的SPI机制Spring Factories文件 2. Spring Factories实现原理3. Code3.1 定义一个服务接口3.2 定义 实现类3.3 配置 spring.factories 文件3.4 创建一个Controller来加载插件3…...
GUNS搭建
一、准备工作 源码下载: 链接: https://pan.baidu.com/s/1bJZzAzGJRt-NxtIQ82KlBw 提取码: criq 官方文档 二、导入代码 1、导入后端IDE 导入完成需要,需要修改yml文件中的数据库配置,改成自己的。 2、导入前端IDE 我是用npm安装的yarn npm…...
路径规划之启发式算法之十四:蜘蛛蜂优化算法(Spider Wasp Optimizer, SWO)
蜘蛛蜂优化算法(Spider Wasp Optimizer, SWO)是一种受自然界中蜘蛛蜂行为启发的元启发式智能优化算法。由Mohamed Abdel-Basset等人于2023年提出,算法模拟了雌性蜘蛛蜂的狩猎、筑巢和交配行为,具有独特的更新策略,适用于具有不同探索和开发需求的广泛优化问题。 一、算法背…...
OpenGL ES详解——多个纹理实现混叠显示
目录 一、获取图片纹理数据 二、着色器编写 1. 顶点着色器 2. 片元着色器 三、绑定和绘制纹理 1. 绑定纹理 2. 绘制纹理 四、源码下载 一、获取图片纹理数据 获取图片纹理数据代码如下: //获取图片1纹理数据 mTextureId loadTexture(mContext, R.mipmap.…...
Java多线程与线程池技术详解(八)
《星游记》 “如果只有傻瓜才相信梦想,那么就叫我大傻瓜吧!” 《一人之下》 “想走的路不好走,想做人不好做,都说是身不由己,不是废话么。己不由心,身又岂能由己!” 目录 上一篇博客习题讲解 编…...
2024年12月11日Github流行趋势
项目名称:maigret 项目维护者:soxoj, kustermariocoding, dependabot, fen0s, cyb3rk0tik项目介绍:通过用户名从数千个站点收集个人档案信息的工具。项目star数:12,055项目fork数:870 项目名称:uv 项目维护…...
ThinkPHP 6.0 PHP新手教程
1、系统配置文件 下面系统自带的配置文件列表及其作用: 配置文件名描述app.php应用配置cache.php缓存配置console.php控制台配置cookie.phpCookie配置database.php数据库配置filesystem.php磁盘配置lang.php多语言配置log.php日志配置middleware.php中间件配置rou…...
【Excel学习记录】02-单元格格式设置
1.单元格格式工具美化表格 单元格格式位置 选中单元格,右键→设置单元格格式 合并居中 跨越合并 字体类型、大小、颜色、填充底纹、边框 斜线 软回车:alt enter 格式刷 2.单元格数字格式 格式不影响数值,只是展示形式 日期本质也是数…...
Paimon Tag和Branch创建文件存储过程
结论: 如果data-file被引用则不会被压缩,压缩仅针对未被引用的文件,创建tag时候根据当前快照进行创建 1、实际表和Manifest的内容 查看tag的内容 select * from table$tags;或者直接查看tag ossutil cat oss://test-dataware/warehouse/te…...
HCIA笔记8--DHCP、Telnet协议
1. DHCP介绍 对于主机的网络进行手动配置,在小规模的网络中还是可以运作的,但大规模网络是无力应对的。因此就有了DHCP协议来自动管理主机网络的配置。 DHCP(Dynamic Host Configuration Protocol): 动态主机配置协议,主要需要配置的参数有…...
Tableau数据可视化与仪表盘搭建
1.Tableau介绍 可视化功能 数据赋能 数据赋能就是将我们的数据看板发布到我们的线上去 这里的IP地址是业务部门可以通过账号密码登入的 我们也可以根据需要下载,选中并点击下载即可 下载下来之后,自己就能根据数据进行自定义的分析 也可以下载图片 还有…...
Django结合websocket实现分组的多人聊天
其他地方和上一篇大致相同,上一篇地址点击进入, 改动点1:在setting.py中最后再添加如下配置: # 多人聊天 CHANNEL_LAYERS {"default":{"BACKEND": "channels.layers.InMemoryChannelLayer"} }因此完整的se…...
自动驾驶控制与规划——Project 1: 车辆纵向控制
目录 零、任务介绍一、环境配置1.1 CARLA的配置1.2 Docker Ubuntu 20.04 ROS2 Foxy的配置 二、算法2.1 定速巡航2.2 自适应巡航2.3 离散PID控制 三、代码实现3.1 代码补全3.2仿真验证 零、任务介绍 课程主页 配置Carla仿真器配置carla-ros-bridge补全src\ros-bridge\carla_s…...
基于python实现自动化的验证码识别:探索与实践
基于python实现自动化的验证码识别:探索与实践 一、验证码的类型及特点(一)图像验证码(二)短信验证码(三)语音验证码 二、验证码识别的方法*(一)传统图像处理方法&#x…...
如何保证消息队列的高可用?(RabbitMQ)
RabbitMQ 是基于主从(非分布式)做高可用性的,RabbitMQ 有三种模式:单机模式、普通集群模式、镜像集群模式 1、单机模式:一般没人生产用单机模式 2、普通集群模式: 普通集群模式用于提高系统的吞吐量&…...
es的join是什么数据类型
在 Elasticsearch 中,parent 并不是一个独立的数据类型,而是与 join 数据类型一起使用的一个概念。join 数据类型用于在同一个索引中建立父子文档之间的关系,允许你在一个索引内表示层级结构或关联关系。通过 join 字段,你可以定义不同类型的文档(如父文档和子文档),并指…...
爬虫基础之代理的基本原理
在做爬虫的过程中经常会遇到一种情况,就是爬虫最初是正常运行、正常抓取数据的,一切看起来都是那么美好,然而一杯茶的工夫就出现了错误,例如 403 Forbidden,这时打开网页一看,可能会看到“您的IP访问频率太…...
golang实现简单的reids服务2
golang实现redis兼容的redis服务实现redis兼容的redis服务思路 golang实现redis兼容的redis服务 之前做的redis服务是通过tcp封装的自定义协议 原版项目地址:https://github.com/dengjiayue/my-redis.git 那么能不能实现一个redis兼容的redis服务,这样一般的redis包也可以调…...
CSS常用的尺寸单位
像素px 以屏幕上的一个点为单位,比较稳定和精确用的最多 em 以字体大小为参考,(是自身字体大小的倍数)当自身的字体大小改变时,em也会随着改变em * font-size px rem 以根元素 < html > 作为参考ÿ…...
计算机网络 备查
OSI 七层模型 七层模型协议各层实现的功能 简要 详细 TCP/IP协议 组成 1.传输层协议 TCP 2.网络层协议 IP 协议数据单元(PDU)和 封装 数据收发过程 数据发送过程 1. 2.终端用户生成数据 3.数据被分段,并加上TCP头 4.网络层添加IP地址信息…...
JavaEE 【知识改变命运】05 多线程(4)
文章目录 单例模式什么是单例模式饿汉模式懒汉模式多线程- 懒汉模式分析多线程问题第一种添加sychronized的方式第二种添加sychronized的方式改进第二种添加sychronized的方式(DCL检查锁) 阻塞队列什么是阻塞队列什么是消费生产者模型标准库中的阻塞队列…...
迭代器和生成器
一、迭代器(Iterator) 1. 什么是迭代器? 迭代器是一个可以在某一集合(如列表、元组等)中逐个访问元素的对象。它提供了一个方法,可以记住遍历的位置,每次取出一个元素,直到所有元素…...
小发现,如何高级的顺序输出,逆序输出整数的每一位(栈,队列)
当我还是初学者的时候,我经常思考有没有比慢慢求每一位数字然后考虑正序,逆序输出要快的办法...长期琢磨,必有所获! 我刚学数据结构的时候还没意识到栈,队列还能这样用,虽然说有点杀鸡用牛刀的感觉&#x…...
前端换行、空格的多种表现形式
换行 1、<br> 标签 这是最直接的方式,用于在文本中插入一个简单的换行。<br> 标签是一个空元素,意味着它不需要结束标签。 示例: <p>这是第一行。<br>这是第二行。</p>2、CSS white-space 属性 通过CSS的w…...
自己总结:selenium高阶知识
全篇大概10000字(含代码),建议阅读时间30min 一、等待机制 如果有一些内容是通过Ajax加载的内容,那就需要等待内容加载完毕才能进行下一步操作。 为了避免人为操作等待,会遇到的问题, selenium将等待转换…...
无线遥控红外通信
无线遥控红外通信 红外发射装置一般是指红外遥控器由 键盘电路 ,红外编码电路 电源电路 和红外发射 电路组成 一般的红外线波长为940nm左右,外形与普通发光二极管相同 红外遥控为了提高抗干扰性能和降低电源消耗,红外遥控器常用载波的方式传送…...
第一个C++程序--(蓝桥杯备考版)
第一个C程序 基础程序 #include <iostream>//头⽂件 using namespace std;//使⽤std的名字空间 int main()//main函数 {cout << "hello world!" << endl; //输出:在屏幕打印"hello world!" return 0;}main函数 main 函数是…...
Rust包管理和构建工具
Cargo 是 Rust 语言的包管理和构建工具。它提供了一套完整的工具链,用于管理 Rust 项目的依赖关系、编译代码、运行测试和生成文档。Cargo 极大地简化了 Rust 项目的开发和部署过程,使得开发者可以专注于编写代码,而不是处理构建系统的复杂性…...