C++语法19 循环嵌套结构(for/while循环)

语法阶段已经更新到第18章了,前面的知识你都学会了吗?如果还没有学习前面的知识,请点击👉语法专栏进行学习哦!

目录

循环嵌套

训练:数字矩形

 解析

参考代码

训练:星号三角形

 解析

 参考代码

训练:乘法口诀表

解析

参考代码


循环嵌套

和if一样,循环也能够嵌套。例如:我们可以先写一个输出1~10的循环a,我如果想让这个程序执行5次,则只需要再写一个5次的循环b,然后把循环a放入循环b中即可。

训练:数字矩形

输入整数m,n,请你打印m行,整数n~1。

【输入格式】输入两个空格隔开的整数m,n(1<=m,n<=15)

【输出格式】m行:每行有n个空格隔开的整数

【输入样例】3 5

【输出样例】

5 4 3 2 1
5 4 3 2 1
5 4 3 2 1

 解析

1.外层循环:外层循环控制行数,一共有m行,每行输入结束,会换行,所以外层循环为:

for(int i=1;i<=m;i++)
{cout << endl;
}

2.内层循环:内层循环控制输出n个数字,并且是从n开始到1结束,中间用空格隔开,即在外层循环换行前写上:

for(int j=n;j>=1;j--)
{cout<<j<<' ';
}

参考代码

#include<iostream>
using namespace std;
int main( )
{int m,n;cin>>m>>n;for(int i=1;i<=m;i++){for(int j=n;j>=1;j--){cout<<j<<' ';}cout<<endl;}return 0;
}  

训练:星号三角形

输入整数n,请你打印n行,*号三角形。

【输入格式】输入一个整数n(1<=n<=20)

【输出格式】输出n行:第i行有i个*号

【输入样例】3

【输出样例】

*
**
***

 解析

1. 假设i代表行,当i=1的时候,第1行有一颗*,当i=2的时候,第2行有两颗*,当i等于n的时候,第n行有n颗*。

                ​​

2. 外层循环同上题,内层循环每i行输出i个*号,行跟*是对应的,所以控制内层循环的j从1颗*开始,当j等于i的时候就是输出当前行的最后一颗*号,即:

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

 参考代码

#include<iostream>
using namespace std;
int main( )
{int n;cin>>n;for(int i=1;i<=n;i++){for(int j=1;j<=i;j++){cout<<'*';}cout<<endl;}return 0;
}

训练:乘法口诀表

输入整数n,参考样例格式,打印前n行乘法口诀表。

【输入格式】输入一个整数n(1<=n<=20)

【输出格式】输出格式参考样例,式子之间3个空格

【输入样例】3

【输出样例】

1 * 1 = 1
1 * 2 = 2   2 * 2 = 4
1 * 3 = 3   2 * 3 = 6   3 * 3 = 9

解析

1.i代表行,j代表列,第1列第1行的算式为1*1,第1列第2行的算式为1*2,第2列第2行的算式为2*2... ...第j列第i行的算式为j*i

2.外层循环控制行,与前面两题相似,内层循环控制列,关系式为:i*j=i*j的结果并空3个格,即:

for(int j=1;j<=i;j++)
{cout<<j<<" * "<<i<<" = "<<j*i<<"   ";
}

参考代码

#include<iostream>
using namespace std;
int main( )
{int n;cin>>n;for(int i=1;i<=n;i++){for(int j=1;j<=i;j++){cout<<j<<" * "<<i<<" = "<<j*i<<"   ";}cout<<endl;}return 0;
}

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

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

相关文章

Scikit-Learn梯度提升决策树(GBDT)

Scikit-Learn梯度提升决策树 1、梯度提升决策树(GBDT)1.1、Boosting方法1.2、GBDT的原理1.3、GBDT回归的损失函数1.4、梯度下降与梯度提升1.5、随机森林与GBDT1.6、GBDT的优缺点2、Scikit-Learn梯度提升决策树(GBDT)2.1、Scikit-Learn GBDT回归2.1.1、Scikit-Learn GBDT回归…

【车载开发系列】CAN通信总线再理解(中篇)

【车载开发系列】CAN通信总线再理解&#xff08;中篇&#xff09; 九. CAN总线标准十. CAN物理层十一. CAN数据链路层1&#xff09;CAN的通信帧类型2&#xff09;CAN的标准帧格式1. CAN ID2. 数据场 3&#xff09;CAN总线仲裁 十二. CAN应用层1&#xff09;CANopen2&#xff09…

电力行业如何利用行列视(RCV)解决数据治理难题?

电力行业作为能源供应的重要支柱&#xff0c;面临着海量的数据处理和治理挑战。行列视&#xff08;RCV&#xff09;作为一种强大的数据应用系统&#xff0c;可以为电力行业提供有效的解决方案&#xff0c;以应对这些难题。以下是如何利用行列视&#xff08;RCV&#xff09;解决…

C语言中的位域(bit-field)是什么,以及它的用途和优缺点

在C语言中&#xff0c;位域&#xff08;bit-field&#xff09;是一种特殊的数据结构&#xff0c;它允许在结构体&#xff08;struct&#xff09;中定义其成员所占用的位数&#xff0c;而不是使用整个字节或更大的内存空间。位域通常用于存储布尔值、状态标志、硬件控制位等&…

负数在二进制中的表示方法

负数在二进制中的表示方法 1 补码介绍2 举例-10的二进制表示3 测试打印0xfffffff6值 1 补码介绍 在二进制补码表示法中&#xff0c;负数是通过取其绝对值的二进制表示&#xff08;即正数的二进制表示&#xff09;&#xff0c;然后取反&#xff08;0变1&#xff0c;1变0&#x…

《车载以太网通信测试》课程来袭!!!

本课程包含教程和脚本两部分内容。 教程 详细介绍以太网&#xff0c;如何理解TCP/IP协议&#xff0c;CAPL中涉及以太网的代码&#xff0c;以太网测试环境如何搭建&#xff0c;从物理层、链路层、网络层、传输层到应用层多种协议测试点的测试原理和测试方法介绍&#xff0c;中…

西门子学习笔记12 - BYTE-REAL互相转化

这是针对于前面MQTT协议的接收和发送数组只能是BYTE数组做出的对应的功能块封装。 1、BYTE-REAL转化 1、把byte数组转成字符串形式 2、把字符串转成浮点数 2、REAL-BYTE转化 1、把浮点数转成字符串 2、把字符串转成Byte数组

【转载】TIOBE 编程指数 6 月排行榜公布,vb.net排第九

原文地址&#xff1a;https://baijiahao.baidu.com/s?id1801368030428902126&wfrspider&forpc IT之家 6 月 9 日消息&#xff0c;TIOBE 编程社区指数是一个衡量编程语言受欢迎程度的指标&#xff0c;评判的依据来自世界范围内的工程师、课程、供应商及搜索引擎&#…

乐鑫esp32系列睡眠模式下蓝牙连接功耗测试,新支持ESP-C6,启明云端乐鑫代理商

本教程适用于ESP32-S3、ESP32-C3、ESP32-C6&#xff1b; 睡眠模式介绍 ESP32系列常见的休眠方式有三种&#xff0c;分别为Modem-sleep、Light-sleep 和 Deep-sleep。 Modem-sleep模式&#xff1a;CPU 正常工作&#xff0c;可以对时钟进行配置。 进入 Modem-sleep 模式后&…

【Android面试八股文】odex了解吗?解释型语言和编译型语言有什么区别?JAVA是编译型语言还是解释型语言?

文章目录 一、什么是 ODEX?二、解释型和编译型的区别2.1 解释型语言(Interpreted Language)2.2 编译型语言(Compiled Language)2.3 JAVA是编译型语言还是解释型语言?2.3.1 在标准JAVA环境2.3.1 在Android环境一、什么是 ODEX? ODEX 文件(Optimized DEX),表示经过优化…

大模型与知识图谱:联合打造智能未来,案例解析让你大开眼界!

在数字化浪潮中&#xff0c;大模型和知识图谱作为人工智能领域的两大核心技术&#xff0c;正逐渐改变着我们的生活。大模型&#xff0c;是一种通过大规模数据训练得到的深度学习模型&#xff0c;具备强大的语义理解和推理能力&#xff1b;而知识图谱&#xff0c;则是以图状结构…

对象存储测试工具-s3cmd

一、环境安装 官网&#xff1a;https://s3tools.org/s3cmd 下载安装包&#xff1a;https://s3tools.org/download GitHub&#xff1a;https://github.com/s3tools/s3cmd/releases 本文安装包&#xff1a;https://github.com/s3tools/s3cmd/releases/download/v2.0.2/s3cmd-2.0…

MyBatis打印不带问号SQL

mybatis-config.xml里配置自己家实现拦截器MyBatisUpdateInterceptor <plugins><plugin interceptor"project.x.interceptor.MyBatisUpdateInterceptor"/></plugins>applicationContext.xml里配置自己家实现拦截器的包路径 <context:component-…

光伏设计需要设计哪些方面?

光伏设计是一项复杂而关键的工作&#xff0c;它涉及到多个方面的综合考虑&#xff0c;以确保光伏系统的效率、安全性和可持续性。下面将详细探讨光伏设计需要设计的几个方面。 一、系统规模与布局 光伏设计的首要任务是确定系统的规模和布局。这包括评估安装地点的光照资源、可…

【nginx】 nginx核心功能

【nginx】 nginx核心功能 1.nginx核心功能 1. 反向代理 2. 负载均衡 3. 动静分离 4. nginx的高可用2. 反向代理 正向代理: 该服务器代理的是客户端&#xff0c;对于服务器来说&#xff0c;不知道真实客户端的ip。比如: 翻墙软件。 访问国外的服务器---使用了翻墙软件----对…

Vue 使用setInterval定时器导致前端页面卡死(解决方法)

Vue 使用setInterval定时器导致前端页面卡死 原因 setinterval不会清除定时器队列&#xff0c;每重复执行1次都会导致定时器叠加&#xff0c;最终卡死你的网页。 其原因与JS引擎线程有关&#xff08;需深入研究JS引擎线程&#xff09; &#xff0c;但是setTimeout是自带清除定…

3.4 SpringAOP之通知获取数据

1.JoinPoint和ProceedingJoinPoint接口 接口定义功能适用通知类型JoinPoint代表了在程序执行过程中的连接点获取到连接点&#xff08;被拦截方法&#xff09;的名称、参数、目标对象以及代理对象等信息前置、后置、返回后、抛出异常后通知ProceedingJoinPoint是 JoinPoint 接口…

CSS 变量的优势

CSS 变量(Custom Properties)&#xff1a;灵活的样式定义与复用 在 CSS 中,我们通常会使用一些固定的值来定义样式,比如颜色、字体大小、边距等。但随着项目的不断发展和需求的变化,这些固定值可能会变得难以维护和复用。这就是 CSS 变量(Custom Properties)派上用场的地方。 …

26.ByteBuf组成和内存释放源码

ByteBuf中有什么? 1.capacity 容量 2.max capacity 最大容量 3.读指针(在ByteBuf的一开始) 4.写指针(在ByteBuf的一开始) 读指针与写指针之间就是 还未读取的部分(可读部分)。 读指针读过的部分叫做废弃的部分。 ByteBuf由四部分组成 可扩容部分(容量capacity与…

同城跑腿多合一系统源码小程序支持安卓+IOS+公众号+H5

&#x1f680; 同城跑腿多合一小程序&#xff1a;便捷生活新选择 &#x1f4a8; 一、引言&#xff1a;走进便捷新纪元 在这个快节奏的现代生活中&#xff0c;时间成了最宝贵的财富。而“同城跑腿多合一小程序”正是为了满足大家对于便捷、高效生活的追求而诞生的。它不仅是一款…