18C++循环结构-多重循环(1)——教学
一、循环的嵌套
参考视频
问题:

#include <iostream>
using namespace std;
int main()
{
int j;
for(j=1;j<=5;j++)
cout<<'*';
return 0;
}
再编一程序,每次输出3行,每行5个"*"号。
在外层加一个循环语句来实现;流程图如:

运行过程:

这种循环体中又引入循环语句的方式,称为循环的嵌套,处于外层的循环叫作外循环,处于内层的循环叫作内循环,根据嵌套的层数有双重环、三重循环等。
![]() |
|
|---|
我们来看一下,下面这段程序是不是双重循环?
for(i=1;1<=3,++)
cout<<'*';
for(j=1;j<5:j++)
cout<<'*';
cout<<endl;
这两个循环是并列关系,不是嵌套关系,所以不是双重循环。
二、双重循环的应用
实例(一)图形的窍门
参考视频
试编一程序,输出如图所示的三角形图形:

流程图:

思考:试编一程序,输出如图所示的三角形图形:

#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;
}
实例(二)九九乘法表
编程输出九九乘法表 参考视频
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

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




浙公网安备 33010602011771号