在C++中,如何使用while无限循环的2层嵌套来完成9×9乘法表?

问题描述:

分析下面的代码和结果回答下面的问题。在C++中,如何使用while无限循环的2层嵌套来完成9×9乘法表?4个关键点是什么?第一、2层循环,外层控制行,内层控制列。第二、外层循环和内存循环的累加数字变量,用以辅助输出乘法表的数值。第三、使用\t对齐输出,内层循环输出不要换行。第四、打印输出时列号必须小于行号。

代码:

// Created by 黑马程序员.
#include "iostream"
using namespace std;

/*
 * 打印九九乘法表
 * 1. 外层循环控制行,内层控制列
 * 2. \t分隔内层循环的输出,行和行之间有换行分隔
 * 1x1=1
 * 1x2=2  2x2=4
 * 1x3=3  2x3=6  3x3=9
 * 1x4=4  2x4=8  3x4=12 4x4=16
 * 1x5=5  2x5=10 3x5=15 4x5=20 5x5=25
 * 1x6=6  2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
 * 1x7=7  2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
 * 1x8=8  2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
 * 1x9=9  2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81
 * */

int main()
{
    // 1. 通过外层循环输出9行
    int line = 1;       // 外层循环控制因子,从1开始
    while (line <= 9)   // 判断条件,9行输出
    {
//        cout << line << endl;
        // 2. 内层循环
        int num = 1;    // 内层循环的控制因子
        while (num <= line)
        {
            cout << num << "x" << line << "=" << num * line << "\t";
            num++;      // 内层循环控制因子++
        }

        line++;         // 外层循环控制因子的更新
        cout << endl;
    }
    return 0;
}

结果:

D:\CLion_code\cmake-build-debug\CLion_code.exe
1x1=1	
1x2=2	2x2=4	
1x3=3	2x3=6	3x3=9	
1x4=4	2x4=8	3x4=12	4x4=16	
1x5=5	2x5=10	3x5=15	4x5=20	5x5=25	
1x6=6	2x6=12	3x6=18	4x6=24	5x6=30	6x6=36	
1x7=7	2x7=14	3x7=21	4x7=28	5x7=35	6x7=42	7x7=49	
1x8=8	2x8=16	3x8=24	4x8=32	5x8=40	6x8=48	7x8=56	8x8=64	
1x9=9	2x9=18	3x9=27	4x9=36	5x9=45	6x9=54	7x9=63	8x9=72	9x9=81	

Process finished with exit code 0

问题解答:

在C++中,可以使用while循环的两层嵌套来完成9×9乘法表的打印。以下是关键点的详细解释:

代码分析

// Created by 黑马程序员.
#include "iostream"
using namespace std;

/*
 * 打印九九乘法表
 * 1. 外层循环控制行,内层控制列
 * 2. \t分隔内层循环的输出,行和行之间有换行分隔
 * 1x1=1
 * 1x2=2  2x2=4
 * 1x3=3  2x3=6  3x3=9
 * 1x4=4  2x4=8  3x4=12 4x4=16
 * 1x5=5  2x5=10 3x5=15 4x5=20 5x5=25
 * 1x6=6  2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
 * 1x7=7  2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
 * 1x8=8  2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
 * 1x9=9  2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81
 * */

int main()
{
    // 1. 通过外层循环输出9行
    int line = 1;       // 外层循环控制因子,从1开始
    while (line <= 9)   // 判断条件,9行输出
    {
//        cout << line << endl;
        // 2. 内层循环
        int num = 1;    // 内层循环的控制因子
        while (num <= line)
        {
            cout << num << "x" << line << "=" << num * line << "\t";
            num++;      // 内层循环控制因子++
        }

        line++;         // 外层循环控制因子的更新
        cout << endl;
    }
    return 0;
}

代码运行结果

D:\CLion_code\cmake-build-debug\CLion_code.exe
1x1=1	
1x2=2	2x2=4	
1x3=3	2x3=6	3x3=9	
1x4=4	2x4=8	3x4=12	4x4=16	
1x5=5	2x5=10	3x5=15	4x5=20	5x5=25	
1x6=6	2x6=12	3x6=18	4x6=24	5x6=30	6x6=36	
1x7=7	2x7=14	3x7=21	4x7=28	5x7=35	6x7=42	7x7=49	
1x8=8	2x8=16	3x8=24	4x8=32	5x8=40	6x8=48	7x8=56	8x8=64	
1x9=9	2x9=18	3x9=27	4x9=36	5x9=45	6x9=54	7x9=63	8x9=72	9x9=81	

Process finished with exit code 0

4个关键点

  1. 2层循环:外层控制行,内层控制列

    • 外层循环 (line) 控制行的数量,从1到9。
    • 内层循环 (num) 控制列的数量,每行输出对应的乘法表。
  2. 累加数字变量:用于辅助输出乘法表的数值

    • 内层循环的变量 num 用于从1开始累加,直到等于当前的 line 值。
    • 外层循环的变量 line 用于控制乘法表的行数。
  3. 使用 \t 对齐输出,内层循环输出不要换行

    • 在每次内层循环中,使用 \t 来对齐输出的结果,使得输出整齐。
    • 内层循环负责输出一行的内容,不进行换行操作。
  4. 打印输出时列号必须小于等于行号

    • 通过 num <= line 控制内层循环,只打印出列号小于等于行号的乘法表达式。

具体步骤

  1. 第一步:找准哪个是外部循环,哪个是内部循环。

    • line 是外部循环,用来控制行数。
    • num 是内部循环,用来控制每一行中乘法表的列。
  2. 第二步:找准外部循环的判断条件和循环因子。

    • 外部循环的条件为 line <= 9,表示打印9行乘法表。
    • 循环因子 line 在每次外层循环结束后自增1。
  3. 第三步:找准内部循环的判断条件和循环因子。

    • 内部循环的条件为 num <= line,表示当前行最多打印 line 列的乘法表。
    • 循环因子 num 在每次内层循环结束后自增1。
  4. 第四步:设置好计时器,也就是计数变量。

    • linenum 都是在各自循环内设置并更新的计数变量。
    • 内部循环输出完一行后,外层循环继续,直到输出完所有行。

这个结构使得9×9乘法表可以整齐地打印出来,且各乘法公式按照正确的格式排列。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

神笔馬良

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

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

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

打赏作者

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

抵扣说明:

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

余额充值