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

一、循环的嵌套

问题:

#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)完善程序。
编程序输出如图所示的图形。

    11111
    22222
    33333
    44444
#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、输出

     0
     12
     345
     6789
#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;
}
posted @ 2025-03-06 22:42  gdyyx  阅读(68)  评论(0)    收藏  举报