18C++循环结构-多重循环(1)

news/2025/3/6 22:45:15/文章来源:https://www.cnblogs.com/citStudy/p/18509712

一、循环的嵌套

问题:

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

再编一程序,每次输出3行,每行5个"*"号。

在外层加一个循环语句来实现;流程图如:

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

运行过程:

  这种循环体中又引入循环语句的方式,称为循环的嵌套,处于外层的循环叫作外循环,处于内层的循环叫作内循环,根据嵌套的层数有双重环、三重循环等。

我们来看一下,下面这段程序是不是双重循环?

for(i=1;1<=3,++)cout<<'*';
for(j=1;j<5:j++)cout<<'*';
cout<<endl;

这两个循环是并列关系,不是嵌套关系,所以不是双重循环。

练习:

1、尼克在家里通过网络观看狐狸老师的C++教学视频,可以选择1280×720高清模式,也可以选择1920×1080全高清模式。请问1280×720和192×1080指的是( )。

   A.内存     B.存储容量      C.分辨率     D.显示器大小

2、阅读程序写结果。

#include <iostream>
using namespace std;
int main()
{int i, j:for(i=l;i<=3;i++){for(j=1;j<=5;j++)cout <<j;cout << endl;}
return 0;
}

i,j输出:___________
(3)完善程序。
编程序输出如图所示的图形。

    11111222223333344444
#include <iostream>
using namespace std;
int main()
{int i, j;for(i=1;____;i++){for(j=1;_______;j++)cout<<________;cout <<endl;}returm 0;
}

二、双重循环的应用

实例1

图形的窍门:试编一程序,输出如图所示的三角形图形。

流程图:

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

思考:

#include <iostream>
#include <iomanip>    //为了使用setw()来设置域宽
using namespace std;
int main()
{int i,j;for(i=1;i<=5;i++)            //外循环控制行数{ cout<<setw(41-i) <<' ';    //占位,右对齐,每行位置for(j=1;j<=i*2-1;j++)     //内层循环控制每行的个数cout<<'*';             //输出的内容cout<<endl; 	         //换行} return 0;
}

实例2

九九乘法表:编程输出九九乘法表

#include <iostream> 
#include <iomanip>
using namespace std;
int main()
{int i,j;for(i=1;i<=9;i++){for(j=1;j<=i;j++)cout<<i<<'*'<<j<<'='<<setw(2)<<i*j<<"  ";cout<<endl;}	
}

实例3

鸡兔同笼
大约在1500年前,《孙子算经》中就记载了这个有趣的问题。书中是这样叙述的:今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?试编一程序求笼中鸡和兔各有几只?
可以用枚举算法,鸡兔同笼,有35个头,则鸡最少1只,最多34只。有94只脚,兔子最少1只,最多23只。当满足头35个、脚94只时,输出鸡和兔的只数,流程图如图示。

#include <iostream> 
using namespace std;
int main()
{int ji,tu;for(ji=1;ji<=34;ji++)for(tu=1;tu<=23;tu++){if(ji+tu==35)if(ji*2+tu*4==94)cout<<"鸡:"<<ji<<"  兔:"<<tu<<endl;}return 0;
}

可以把两个条件用逻辑与(&&)连接起来。
if(ji+tu==35 && (ji*2+tu*4==94)

练习:

(一)选择题
1、家用扫地机器人具有自动避障、清扫、自动充电等功能,这主要是应用了信息技术中的( )

  A.人工能技术          B.网络技术             C.多媒休技术            D.数据管理技术

2、物联网在生活中得到了越来越广泛的应用,下列不属于物联网应用的是( )

  A.手机远程遥控家中电器的运行    B.电视遥控器遥控电视    C.高速公路收费站ETC通道     D.手机远程高控蔬菜大棚的温度         

3、尼克的手机在风之巅广场搜索到Wi-Fi信号,使可通过Wi-Fi上网,这是应用了( )技术。

     A.虚拟现实      B.无线网络        C.网络安全        D.人工智能

(二)阅读程序写结果
1、

#include <iostream> 
using namespace std;
int main()
{int i,j;char t='A';for(i=1;i<=3;i++){for(j=1;j<=i;j++)cout<<t;cout<<endl;t++;}
return 0;
}

i,j,t输出:____________________
2、

#include <iostream> 
using namespace std;
int main()
{int i, j, ans=0;for(i=1;i<=3;i++)for(j=1;j<=5;j++)ans++;cout << ans << endl;
return 0;
}

i,j,ans输出:_____________________
3、

#include <iostream> 
using namespace std;
int main()
{int i, j, ans=0;for(i=1;i<=3;i++)for(j=1;j<=5;j++)ans+=i;cout << ans << endl;
return 0;
}

i,j,ans输出:_____________________
(三)完善程序
1、输出

     0123456789
#include <iostream> 
using namespace std;
int main()
{int i,j,t=0;for(i=1;________;i++){cout<<setw(40);for(j=1;j<=i;j++){cout<<t;___________;}________;}return 0;
}

2、

#include <iostream> 
using namespace std;
int main()
{int i,j,ans;ans=0;for(i=1;i<=99;i++)for(j=1;j<=i;j++){____________;if(i==99&&j==9)_________;}cout<<ans<<endl;return 0;
}

3、求1×1×1×1+2×2×2×2+3×3×3×3+·-n×n×n×n的和是多少?

#include <iostream> 
using namespace std;
int main()
{int i,f,n;long long sum, sumn;sum=0;cout<<"n=";cin>>n;for(i=1;i<=n; i++){___________;for(j=1;j<=4:j++)sumn*=i;___________;}cout<<sun <<endi;return 0;
}

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

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

相关文章

Mybatis-plus01--快速开始

前言 在编写Java开发过程中,尤其是CRUD开发,我们会发现大部分事件都在编写Java持久层的增删改查上了,并且配置mybatis的mapper文件也是一件麻烦的事。如果你也有这样的烦劳,看来就可以认识一下我们的新朋友mybatis-plus了。 MyBatis-Plus 是一个 Mybatis的增强工具,在 MyB…

作业二:文本查重

作业介绍这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/SoftwareEngineeringClassof2023github https://github.com/Ryon-h/3123003446这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/SoftwareEngineeringClassof2023/homework/13324这个作业的目标 完成…

上哪儿下载stable diffusion

要在本地环境中下载和安装Stable Diffusion,您可以遵循以下几种方法: 方法一:GitHub源码下载(工作流下载:https://www.mix688.com/964.html)硬件与软件环境准备:确保计算机配备至少4GB显存的NVIDIA GPU。安装Windows操作系统。准备大约10GB的硬盘空间。安装所需软件:下…

清华大学DeepSeek课程:基于DeepSeek的AI音乐词曲创作法(附视频下载)

本课程由清华大学新媒沈阳团队精心打造,旨在教授大家如何利用DeepSeek这一强大的AI工具进行音乐词曲创作。DeepSeek不仅能够帮助我们理解音乐创作的基本原理,还能激发我们的创造力。本课程由清华大学新媒沈阳团队精心打造,旨在教授大家如何利用DeepSeek这一强大的AI工具进行…

2024 年中国大学生程序设计竞赛全国邀请赛(郑州)暨第六届 CCPC 河南省大学生程序设计竞赛(Problem L. Toxel 与 PCPC II)

对于这道题我最开始是想用斜率优化dp,但是x是四次方明显不行,如果是二次方就好了,所以要换一个思路, 可以观察到如果一次性修复的x太多了,会导致时间消耗太大,这样我们还不如一个错误一个错误的修,当x=22时x的四次方就超过了200000,所以说我们最多一次修复22个bug了,值…

2025.3.3微服务架构(Dubbo)

Dubbo配置方式 1.注解: 基于注解可以快速的将程序配置,无需多余的配置信息,包含提供者和消费者。弊端是根据配置信息无法快速定位。XML:和Spring做结合,相关的Service和Reference均使用Spring集成后的。通过这样的方式可以很方便的通过几个文件进行管理整个集群配置。可以快…

数据集蒸馏论文阅读

Dataset Distillation 18年的论文,最早提出数据蒸馏的概念 理论 通常的梯度下降是小批量的 SGD,每次都需要从训练数据中选一个 minibatch 来更新。这篇文章的重点是学习到一个合成数据 \(\hat x=\{\hat x_i\}_{i=1}^M\) 和学习率 \(\hat \eta\),这样我们就可以固定梯度下降的…

数据蒸馏论文阅读

Dataset Distillation 18年的论文,最早提出数据蒸馏的概念 理论 通常的梯度下降是小批量的 SGD,每次都需要从训练数据中选一个 minibatch 来更新。这篇文章的重点是学习到一个合成数据 \(\hat x=\{\hat x_i\}_{i=1}^M\) 和学习率 \(\hat \eta\),这样我们就可以固定梯度下降的…

激活函数汇总

激活函数 激活函数是用来加入非线性因素的,因为线性模型的表达能力不够。 Sigmoid (1) 公式:\(S(x)=\frac{1}{1+e^{-x}}\) (2) 函数图:(3) 缺点: ① 输出值落在(0,1)之间,期望均值为0.5,不符合均值为0的理想状态 ② 该函数存在一正一负两块“死区”(死区:梯度计算为0,…

深入探究C语言内存分配系列函数

深入探究C语言内存分配系列函数 目录深入探究C语言内存分配系列函数内存是什么?内存分配的三种方式为什么要学习动态分配的系列函数?四大内存分配函数前置知识malloc与freemallocfreerealloccallocDeepseek的总结 当我们完成一个程序设计时,需要对其背后的底层原理学习 操作…

第一课 引言与词向量

对于文字的意义,语言学家有很多种定义。其中一种定义运用在自然语言处理中非常有用,这种意义的定义见下分布式语义就是看上下文词来决定单词的意义。于是我们可以利用词向量来衡量两个词之间的相似程度,词的意义被分散在词向量的每一维中 词嵌入之所以叫词嵌入,是因为我们给…