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只时,输出鸡和兔的只数,流程图如图示。

posted @ 2025-02-27 09:14  gdyyx  阅读(116)  评论(0)    收藏  举报