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

全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(for循环语句)(一)

在C++编程中,顺序结构和分支结构是两种基本的控制流结构,其中顺序结构是一种最简单、最基本的控制结构,即代码按照从上到下的顺序逐行执行,每个语句按照顺序执行,一条语句执行完再执行下一条语句,依次执行所有的操作步骤,不遗漏、不重复。分支结构由条件判断和分支语句块构成,允许程序根据某些条件选择不同的执行路径。

在C++编程中,循环结构(也被称为重复结构)是一种重要的控制流机制,它允许程序中的某一条或某一组语句(被称为循环体)按照指定的条件重复执行若干次。这种结构极大地提高了代码的效率和可读性,尤其是在处理需要重复执行的任务时。

假设在考试中,一个考场30个座位,需要为这30个学生安排具体座位,学生从1号开始依次增加到30号结束,例如1号学生坐1号座位,2号学生坐2号座位……以此类推,需要编写程序为每个学生打印出座位号,那么需要输出30次,具体程序如下:


#include<bits/stdc++.h>
using namespace std;
int main() {cout<<"No.1 student: Your seat number is : 1"<<endl;cout<<"No.2 student: Your seat number is : 2"<<endl;……cout<<"No.30 student: Your seat number is : 30"<<endl; return 0;
}

这样需要30条输出语句,这30条语句除了数字不一样之外,其他内容都是一样的,这样太麻烦了,想要解决这个问题,就和后文中的循环语句息息相关,接下来介绍for循环。

一、循环结构的基本概念

循环体:这是循环结构中重复执行的代码块。在C++中,循环体通常被包含在大括号 {} 内。

循环条件:这是决定循环是否继续执行的条件。只要条件为真(非零),循环就会继续;一旦条件变为假(零),循环就会终止。

循环变量:这通常是在循环中用于跟踪执行次数的变量。在每次循环迭代中,循环变量的值都会根据循环的类型(如for循环中的递增或递减操作)进行更新。

for循环:

在实际应用中,如果重复执行相同的操作而且次数固定,就可以用for循环语句来实现。它允许指定循环的初始条件、循环变量条件和循环变量的更新方式。for循环的语法如下:


for (循环变量初始化表达式; 循环变量条件; 循环变量更新) {// 循环体
}

for循环的执行过程:首先执行初始化表达式,紧接着判断循环条件的值,如果为真,则执行循环体(花括号里面的语句),执行完循环体,执行循环变量更新,循环变量更新执行完,再重复执行循环条件,如果循环条件的值为假,则for循环结束,执行for语句之后的内容。由此可见,初始表达式仅执行一次,根据循环条件的取值循环体以及循环变量更新语句可以多次执行。

以下面的程序为例来解释for语句的格式:


for(int i=1;i<=30;i++){cout<<"No."<<i<<" student: Your seat number is : "<<i<<endl;
}

首先执行初始化表达式"int i=1",定义了一个整型变量i,并且进行初始化为1,紧接着执行循环条件i<=30(由于有30个学生,所以学生的编号不能超过30),即使用i<=30设置继续执行的条件,一旦i>30,for循环语句就结束了,当i=1时,i<=30,循环条件为真,执行循环体里面的语句,输出1号学生的座位号,紧接着执行循环变量更新:i++,i的值增加1,i的值变为2,紧接着执行循环条件2<=30为真执行循环体,输出2号学生的座位号,执行i++,i变为3,……,如此反复执行,直到i的值变为31,31<=30循环条件为假,就退出for循环了。

注意:如果循环体里面只有一条语句,那么可以将花括号省略(对于初学者来说一般不建议省略花括号,以免造成循环体语句的遗漏),那么for的语法格式还有另一种形式:


for (循环变量初始化表达式; 循环变量条件; 循环变量更新) 语句1;

所以上述例子可以写成:

for(int i=1;i<=30;i++)cout<<"No."<<i<<" student: Your seat number is : "<<i<<endl;

二、for循环基本应用:

for语句通过循环变量的初值,循环条件,循环变量更新来控制循环语句执行的次数。循环变量的主要作用是计数,除此之外,很多时候循环变量需要参与循环体的计算,以实现某种功能。

1、基本计数

例如,编程实现输出100个'*',可以用for循环语句表述为:


for(int i=1;i<=100;i++){cout<<'*';
}

该问题中,需要控制打印星号语句,即“cout<<'*';”执行100次就可以,还可以有其他的表述方法:


for(int i=100;i>=1;i--){cout<<'*';
}
for(int i=2;i<=200;i+=2){cout<<'*';
}

因此for 语句中循环初始表达式、循环条件和循环变量更新三部分内容的写法灵活多变,相互配合控制循环体语句执行的次数。在这个过程中,循环变量i只起到控制循环次数的作用。

实战训练1—求1-100的和

问题描述:

求 1+2+3+⋯+99+100 的值

输入格式:

输出格式:

一行一个整数,表示这100个数的和。

输入输出样例:

输入样例1

输出样例1

5050

问题分析:

题目要求1到100这100个数的和,首先定义一个和变量sum,通过for循环这100个数,从1到100,将这100个数累加到sum中即可,具体程序代码如下:


#include<bits/stdc++.h>
using namespace std;
int main(){int sum=0;//定义和变量并初始化为0 for(int i=1;i<=100;i++){//从1开始到100,依次对这100个数执行循环体里的内容 sum += i;//将数累加到sum中 }cout<<sum<<endl;//输出sum的值 return 0;
}

相关文章:

全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(for循环语句)(一)

在C编程中&#xff0c;顺序结构和分支结构是两种基本的控制流结构&#xff0c;其中顺序结构是一种最简单、最基本的控制结构&#xff0c;即代码按照从上到下的顺序逐行执行&#xff0c;每个语句按照顺序执行&#xff0c;一条语句执行完再执行下一条语句&#xff0c;依次执行所有…...

【再谈设计模式】享元模式~对象共享的优化妙手

一、引言 在软件开发过程中&#xff0c;我们常常面临着创建大量细粒度对象的情况&#xff0c;这可能会导致内存占用过高、性能下降等问题。享元模式&#xff08;Flyweight Pattern&#xff09;就像是一位空间管理大师&#xff0c;它能够在不影响功能的前提下&#xff0c;有效地…...

NestJS中使用nestjs-plugin-module实现插件系统

1. 安装依赖 npm install brewww/nestjs-plugin-module2. 定义插件接口 首先&#xff0c;我们需要定义一个插件接口&#xff0c;这个接口定义了插件需要实现的方法。 hello/plugin.interface.ts export interface HelloServicePlugin {helloworld(): string;hello(name: st…...

jvm排查问题-实践追踪问题 与思路--堆内堆外内存泄漏排查方针

概述 排查问题的一般思路是:现象 ——> 直接原因 ——>根本原因。 从问题现象出发,可以分为 应用逻辑问题、资源使用问题、虚拟机异常: 应用逻辑可能导致报错增加、死锁、程序退出等;资源问题主要集中在CPU上升和内存上升(OOM Kill);虚拟机问题通常包括GC问题、进…...

Presence:Colyseus用于管理实时分布式数据的工具

Colyseus Presence 详细介绍 Presence 是 Colyseus 中用于管理实时分布式数据的一种工具。它主要用于在多房间、多服务器或分布式部署中实现玩家的实时在线状态、数据共享和通信。Presence 提供了一套简单的 API 来处理诸如在线玩家跟踪、分布式数据存储和发布/订阅模式等功能…...

梳理你的思路(从OOP到架构设计)_认识框架(Framework) 01

目录 1、 是框架的核心要素​编辑&i> 范例1&#xff1a; 范例2&#xff1a; 范例3&#xff1a; 1、 <E&I>是框架的核心要素 在特定领域(Domain)里&#xff0c;将EIT造形的<E&I>部份有意义地组合起来&#xff0c;就成为框架(Framework)了。基本…...

【C++11】类型分类、引用折叠、完美转发

目录 一、类型分类 二、引用折叠 三、完美转发 一、类型分类 C11以后&#xff0c;进一步对类型进行了划分&#xff0c;右值被划分纯右值(pure value&#xff0c;简称prvalue)和将亡值 (expiring value&#xff0c;简称xvalue)。 纯右值是指那些字面值常量或求值结果相当于…...

字节跳动Java开发面试题及参考答案(数据结构算法-手撕面试题)

怎么判断两个链表是否相交?怎么优化? 判断两个链表是否相交可以采用多种方法。 一种方法是使用双指针。首先分别遍历两个链表,得到两个链表的长度。然后让长链表的指针先走两个链表长度差的步数。之后,同时移动两个链表的指针,每次比较两个指针是否指向相同的节点。如果指…...

科汛网校KesionEDU CheckOrder SQL注入漏洞复现

0x01 产品简介 科汛网校KesionEDU是KESION科汛开发的在线教育建站系统,支持在线直播教学、课程点播、录播授课等多种教学方式,满足不同场景下的教学需求。提供问答互动、学习点评、在线笔记等功能,增强学员与教师之间的互动交流。拥有在线考试系统,支持单选、多选、问答等…...

【ELK】ES单节点升级为集群模式--太细了!

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言准备工作1. 查看现状【单节点】2. 原节点改集群模式3. 改es配置文件&#xff0c;增加集群相关配置项4. *改docker映射的端口* 启动新节点5. docker-compose起一…...

Spring AOP是什么

目录 谈谈自己对于 AOP 的了解 Spring AOP 和 AspectJ AOP 有什么区别? AOP 常见的通知类型有哪些? 多个切面的执行顺序如何控制? 谈谈自己对于 AOP 的了解 AOP(Aspect-Oriented Programming:面向切面编程)能够将那些与业务无关&#xff0c;却为业务模块所共同调用的逻辑…...

Ch9 形态学图像处理

Ch9 形态学图像处理 blog点此处&#xff01;<--------- 四大算子相应性质。 腐蚀、膨胀、开闭之间的含义、关系 文章目录 Ch9 形态学图像处理预备知识(Preliminaries)膨胀和腐蚀(Dilation and Erosion)腐蚀膨胀膨胀与腐蚀的对偶关系 开闭操作(Opening and Closing)开运算闭…...

epoll学习

epoll是1个服务端监听n个客户端的多路复用技术&#xff08;通讯方式socket&#xff09; epoll&#xff1a;&#xff08;事件驱动&#xff09;服务端通过管道通讯方式将有变化事件的客户端保存到1个队列 select/poll&#xff1a;&#xff08;轮询驱动&#xff09;服务端主动遍…...

《CS2》报错dxgi.dll缺失怎么办?《CS2》游戏提示dxgi.dll缺失要怎么解决?

一、dxgi.dll缺失的根源 游戏安装问题&#xff1a;dxgi.dll文件是DirectX图形接口的一部分&#xff0c;如果游戏安装不完整或安装过程中出现问题&#xff0c;可能会导致该文件缺失。 系统更新或配置变动&#xff1a;Windows操作系统的更新或某些系统配置的变动&#xff0c;有时…...

Python基础语法之元组

主页有列表&#xff0c;集合和字典的知识点&#xff08;包含对应练习^V^&#xff09; 关注我更新更多初学实例&#xff08;下一个更新元组基础练习&#xff0c;然后集中更新一下C语言&#xff09; 欢迎纠错 元组 一.元组的应用场景 思考&#xff1a;如果想要存储多个数据&am…...

如何实现 MySQL 的读写分离?

面试题 你们有没有做 MySQL 读写分离&#xff1f;如何实现 MySQL 的读写分离&#xff1f;MySQL 主从复制原理的是啥&#xff1f;如何解决 MySQL 主从同步的延时问题&#xff1f; 面试官心理分析 高并发这个阶段&#xff0c;肯定是需要做读写分离的&#xff0c;啥意思&#x…...

Vue.js框架:在线教育系统的安全性与稳定性

2.1系统开发使用的关键技术 本系统在开发中选择B/S框架进行设计&#xff0c;语言采用Java&#xff0c;数据库采用Mysql&#xff0c;并在设计中加入VUE.js技术&#xff0c;本系统的运行环境为Idea。 2.2 VUE.js技术介绍 VUE.js是一个用来开发前台界面的JavaScript框架&#xff0…...

[python SQLAlchemy数据库操作入门]-11.面向对象方式操作股票数据

哈喽,大家好,我是木头左! 通过ORM,开发者可以使用Python类来表示数据库表,从而使得数据库操作更加直观和易于维护。本文将介绍如何使用SQLAlchemy ORM来操作股票数据。 安装 SQLAlchemy 需要安装SQLAlchemy库。可以使用pip命令进行安装: pip install sqlalchemy定义股票…...

Windows 11 中利用 WSL - Linux 虚拟环境部署 ChatTTS-Enhanced 项目教程

#工作记录 在使用 Windows 系统尝试部署一些特定项目时&#xff0c;我们可能会遇到各种各样依赖包安装的问题。比如在 Windows 系统下&#xff0c;当我们想要在 Python 3.10 虚拟环境中&#xff0c;使用命令 “pip install resemble-enhance” 以及 “pip install WeTextProces…...

NPM老是无法install,timeout?npm install失败

NPM老是无法install&#xff0c;timeout&#xff1f; 尝试一下如下操作 一、 更换国内源 npm config set registry https://registry.npmmirror.com npm install或指定源install npm install pkg --registry https://registry.npmmirror.com --legacy-peer-deps如下图 二…...

音乐极客的新玩具:香橙派Zero3快速搭建Melody个人音乐平台

文章目录 前言1. 添加镜像源2. 本地部署Melody3. 本地访问与使用演示4. 安装内网穿透5. 配置Melody公网地址6. 配置固定公网地址 前言 今天要给喜欢听音乐的朋友们介绍一个超酷的DIY项目&#xff0c;在香橙派Zero3上使用Melody搭建自己的个人在线音乐平台&#xff0c;并且借助…...

springboot3版本结合knife4j生成接口文档

1.概述 knife4j官网为&#xff1a;介绍 | Knife4j (xiaominfo.com)https://doc.xiaominfo.com/docs/introduction 初步了解的码友可以初步了解一下官网的如下几个模块&#xff1a; 其中在快速开始模块中&#xff0c;不同的springboot版本都有一个使用的案例demo如下图位置&am…...

广州大彩串口屏安卓/linux触摸屏四路CVBS输入实现同时显示!

一、适用范围 适合广州大彩A40系列产品 产品型号&#xff1a; 二、概述 CVBS只需要一条线缆即可完成视频信号的传输&#xff0c;具有兼容性强、使用简单、成本低廉等优点。典型分辨率为720x480&#xff08;NTSC制&#xff09;或720x576&#xff08;PAL制&#xff09;。 三、…...

pikachu靶场搭建详细步骤

一、靶场下载 点我去下载 二、靶场安装 需要的环境&#xff1a; mysqlApaches&#xff08;直接使用小皮面板Phpstudy&#xff1a;https://www.xp.cn/&#xff09;&#xff0c;启动他们 设置网站&#xff0c;把靶场的路径对应过来 对应数据库的信息 由于没有核对数据库的信…...

Astherus 联手 PancakeSwap 推出 asCAKE,CAKE 最大化收益的最优解?

Astherus 是本轮市场周期中最具创新性的 DeFi 协议之一&#xff0c;其通过推出 AstherusEx 以及 AstherusEarn 两个产品&#xff0c;正在基于真实收益启动 DeFi 市场的增长&#xff0c;并成为加密投资者捕获收益的最佳协议。PancakeSwap 是 BNB Chain 上最大的 DEX&#xff0c;…...

JVM实战—2.JVM内存设置与对象分配流转

大纲 1.JVM内存划分的原理细节 2.对象在JVM内存中如何分配如何流转 3.部署线上系统时如何设置JVM内存大小 4.如何设置JVM堆内存大小 5.如何设置JVM栈内存与永久代大小 6.问题汇总 1.JVM内存划分的原理细节 (1)背景引入 (2)大部分对象的存活周期都是极短的 (3)少数对象…...

无问社区-无问AI模型

无问AI模型是无问社区新上线的一款AI功能&#xff0c;支持文本图像的输入&#xff0c;在文本理解能力、推理能力、视觉能力上相较于“社区助手”有了很大的提升。 我们在预训练模型的技术上增加1.7亿token的训练数据进行强化训练使其具备更好的效果。 更好的消息是我们准备了…...

【记录】列表自动滚动轮播功能实现

目录 效果展示代码 效果展示 代码 <!-- 首页 --> <template><div class"page_body_item_body" mouseenter"stopScroll" mouseleave"scroll(false)"><ele-tableclass"eleTable":table-options"options"…...

前缀树介绍

数风流人物&#xff0c;还看今朝&#xff01; 前缀树 Trie&#xff08;发音类似 "try"&#xff09;或者说 前缀树 是一种树形数据结构&#xff0c;用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景&#xff0c;例如自动补全和拼写检查。 前…...

Solon v3.0.5 发布!(Spring 可以退休了吗?)

Solon 框架&#xff01; 新一代&#xff0c;面向全场景的 Java 应用开发框架。从零开始构建&#xff08;非 java-ee 架构&#xff09;&#xff0c;有灵活的接口规范与开放生态。 追求&#xff1a; 更快、更小、更简单提倡&#xff1a; 克制、高效、开放、生态 有什么特点&am…...

基础组件:

基础组件&#xff1a; RichText 富文本组件&#xff0c;解析并显示HTML格式文本。 适用场景&#xff1a; RichText组件适用于加载与显示一段HTML字符串&#xff0c;且不需要对显示效果进行较多自定义的应用场景。RichText组件仅支持有限的通用属性和事件。具体见属性与事件…...

【LeetCode 面试经典150题】详细题解之滑动窗口篇

【LeetCode 面试经典150题】详细题解之滑动窗口篇 1 滑动窗口理论基础1.1 算法思想1.2 使用场景1.3 使用思路 2 209.长度最小的子数组2.1 题目分析2.2 算法步骤2.3 代码实现2.4 时间复杂度 3 3.无重复字符的最长字串3.1 题目分析3.2 算法步骤3.3 代码实现3.4 复杂度分析 4 30.串…...

【 CSS 】sass 扩展语言的安装

一、全局安装node-sass Sass世界上最成熟、稳定和强大的CSS扩展语言 | Sass中文网 https://www.npmjs.com/package/node-sass NPM镜像_NPM下载地址_NPM安装教程-阿里巴巴开源镜像站 注意&#xff1a;nodejs版本14以上&#xff0c;否则node-sass安装不成功 npm install -g mi…...

【Linux】Linux中用户信息相关的配置文件:/etc/passwd、/etc/group、/etc/shadow、/etc/sudoers

1 用户信息 1.1 /etc/passwd linux上用户的信息保存在/etc/passwd中&#xff0c;看文件名会以为这里保存的是用户密码&#xff0c;但实际上用户密码保存在另一个文件中。 /etc/passwd文件中每行保存一个用户的信息&#xff0c;例如&#xff1a; root:x:0:0:root:/root:/bin…...

electron-vite_18 设置系统音量loudness报错

loudness是一款控制系统音量输出的一款 Node.js 库&#xff1b;但是在electron-vite中直接使用编译的时候会报错&#xff1b;这个时候需要单独处理&#xff1b; 错误分析 error Error: spawn E:\xxx\out\main\adjust_get_current_system_volume_vista_plus.exe 查看编译后项目…...

springboot测试类里注入不成功且运行报错

目录 出错信息 原因 出错信息 写测试类的时候&#xff0c;一直说我注入不成功 而且我运行的时候报错了 java.lang.IllegalStateException: Unable to find a SpringBootConfiguration, you need to use ContextConfiguration or SpringBootTest(classes...) with your te…...

Harmony 网络请求

Http数据请求 axios第三方网络请求工具 1.下载ohpm 2.安装axios 3.使用axios...

Webpack在Vue CLI中的应用

webpack 作为目前最流行的项目打包工具&#xff0c;被广泛使用于项目的构建和开发过程中&#xff0c;其实说它是打包工具有点大材小用了&#xff0c;我个人认为它是一个集前端自动化、模块化、组件化于一体的可拓展系统&#xff0c;你可以根据自己的需要来进行一系列的配置和安…...

docker-componse集群部署Tdengine3.3.2.0

一、centos7.5集群部署三台机器使用docker-componse进行部署 1、三台服务器分别配置host vim /etc/hosts 192.168.13.244 td.master 192.168.13.245 td.slave1 192.168.12.70 td.slave2 2、...

4.3 数据库HAVING语句

having子句要和group by子句联合起来才能使用&#xff0c;不能单独去使用&#xff0c;接下来咱们看一下为什么要引入having子句语法呢&#xff1f;引入having子句也是出于无奈&#xff0c;因为有些条件查询&#xff0c;用group by子句并不能满足要求&#xff0c;比如说查询部门…...

如何使用React,透传各类组件能力/属性?

在23年的时候&#xff0c;我主要使用的框架还是Vue&#xff0c;当时写了一篇“如何二次封装一个Vue3组件库&#xff1f;”的文章&#xff0c;里面涉及了一些如何使用Vue透传组件能力的方法。在我24年接触React之后&#xff0c;我发现这种扩展组件能力的方式有一个专门的术语&am…...

C# 6.0版本的WebAPI接口部署到Linux服务器

将 C# 6.0 的 Web API 部署到 Linux 服务器涉及多个步骤&#xff0c;包括准备环境、构建和发布应用程序、配置 Web 服务器以及确保应用程序正常运行。以下是详细的部署指南&#xff1a; 1. 准备开发环境 安装 .NET SDK 确保你已经在本地开发环境中安装了 .NET SDK&#xff08;…...

ArkTs组件(2)

一.下拉列表组件&#xff1a;Select 1.接口 Select(options: Array<SelectOption>) 参数名类型必填说明optionsArray<SelectOption>是设置下拉选项。 SelectOption对象说明 名称类型必填说明valueResourceStr是 下拉选项内容。 iconResourceStr否 下拉选项图片…...

Bash 脚本教程

注&#xff1a;本文为 “Bash 脚本编写” 相关文章合辑。 BASH 脚本编写教程 as good as well于 2017-08-04 22:04:28 发布 这里有个老 American 写的 BASH 脚本编写教程&#xff0c;非常不错&#xff0c;至少没接触过 BASH 的也能看懂&#xff01; 建立一个脚本 Linux 中有…...

SQL创建和操纵表

本文介绍创建、更改和删除表的基本知识。 1. 创建表 SQL 不仅用于表数据操纵&#xff0c;而且还用来执行数据库和表的所有操作&#xff0c;包括表本身的创建和处理。一般有两种创建表的方法&#xff1a; 多数DBMS 都具有交互式创建和管理数据库表的工具&#xff1b;表也可以…...

1.微服务灰度发布(方案设计)

前言 微服务架构中的灰度发布&#xff08;也称为金丝雀发布或渐进式发布&#xff09;是一种在不影响现有用户的情况下&#xff0c;逐步将新版本的服务部署到生产环境的策略。通过灰度发布&#xff0c;你可以先将新版本的服务暴露给一小部分用户或特定的流量&#xff0c;观察其…...

QT笔记- QTreeView + QFileSystemModel 当前位置的保存与恢复 #选中 #保存当前索引

保存当前位置 QString currentPath model->filePath(view->currentIndex()); // 获得当前位置路径 恢复位置 view->setCurrentIndex(model->index(currentPath)); // 设置此路径所在位置为当前位置...

LeetCode - Google 校招100题 第6天 回溯法(Backtracking) (8题)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/144743505 LeetCode 合计最常见的 112 题: 校招100题 第1天 链表(List) (19题)校招100题 第2天 树(Tree) (21题)校招100题 第3天 动态规划(DP) (20题)...

k8s,service如何找到容器

Kubernetes之所以需要Service&#xff0c;一方面是因为Pod的IP不是固定的&#xff0c;另一方面则是因为一组Pod实例之间总会有负载均衡的需求 被selector选中的Pod&#xff0c;就称为Service的Endpoints&#xff0c;查看方式&#xff1a; kubectl get endpoints hostnames需要…...

计算机的错误计算(一百九十二)

摘要 用两个大模型计算 csc(0.999), 其中&#xff0c;0.999是以弧度为单位的角度&#xff0c;结果保留5位有效数字。两个大模型均给出了 Python代码与答案。但是&#xff0c;答案是错误的。 例1. 计算 csc(0.999), 其中&#xff0c;0.999是以弧度为单位的角度&#xff0c;结…...