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

这是《C++算法宝典》语法入门篇的第19节文章~

如果你之前没有太多C++基础,请点击👉专栏:C++语法入门,如果你C++语法基础已经炉火纯青,则可以进阶算法👉专栏:算法知识和数据结构👉专栏:数据结构

目录

循环嵌套

训练:数字矩形

 解析

参考代码

训练:星号三角形

 解析

 参考代码

训练:乘法口诀表

解析

参考代码


循环嵌套

和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;
}

从入门到算法,再到数据结构,查看全部文章请点击此处icon-default.png?t=N7T8http://bigbigli.com/

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bigbigli_大李

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值