当前课程知识点:C语言程序设计(上) >  循环结构的程序设计(二) >  4.5 循环的嵌套 >  4.5.1 循环的嵌套——九九乘法表

返回《C语言程序设计(上)》慕课在线视频课程列表

4.5.1 循环的嵌套——九九乘法表在线视频

4.5.1 循环的嵌套——九九乘法表

下一节:4.5.2 循环的嵌套——打印三角形

返回《C语言程序设计(上)》慕课在线视频列表

4.5.1 循环的嵌套——九九乘法表课程教案、知识点、字幕

大家好

我们这一周 还继续学习

循环程序的

循环结构的程序设计

前面我们已经讨论过了

构建循环的几个语句

while do while for

那么 我们举的应用例子

都是线性的问题

比如说一个数列

生成了一个数 两个数 一串的数

那么解决的是一串的

周而复始循环的问题

那么这周 我们继续讨论的是

循环的嵌套

那么 因为有嵌套

那么我们把break再来讨论

还有专门为循环设置的

continue这个语句

那么最后 我们会给大家比较多的应用

实例来说这些嵌套的循环

不嵌套的循环的一个实际应用

那么 首先我们看

什么是嵌套呢

嵌套是说

我们在一个循环里边

在嵌了一层循环

在嵌了一层循环

可以有两层 三层 n多层

那我们把这个叫做循环的嵌套

这是什么样的问题呢 给大家看一个例子

大家看见这个例子里边

不是一个线性的问题

它是一个面 一个平面

这个图案大家很熟悉 乘法九九表

有一行 两行 九行构成

那么 每一行上都是

一列 两列 n多列

那在这里边 大家看

为什么用循环来解决这个问题呢

是因为它每个数都有同一个规律

什么样的规律呢

比如说我们随便拿出来35这个数

大家看 35这个数它的行

是在第七行上

如果我们用

把这个第一行 第二行 到第九行

用i来表达这个变量

循环变量的话

那这个变量就是从一循环到九

那么当前我们说的35在第七行上

那么这个35在哪个列上呢

我们看 在第五列上

那这个35是怎么出来的呢

是行乘以列出来的35

那对每个数都有这样的特性

什么样的特性呢

行号乘上列号

就是你现在要打印的这个数

也就是说i*j

就是你这循环体里边要做的事情

而这件事情在循环体里的

那个体里边呢

我们看 打一行 打一行

那这个是循环了九次

从1到9

在这个每一行里边

我们不是打做一个数

不像我们前边生成数列的时候

就生成是一个数

而我们现在是什么呢

在每一行里边是

打一个数 打一个数 再打一个数

每一行打多少个数呢

我们看一下这块

是不是很有规律的

第一行打了一个

第二行打了两个 第三行打三个

那第i行打了i个

那最后一行一定是打了九个

那也就说我这个循环呢

对每一行上的循环呢

总是从第一个数开始

那么从第一个数开始

打一个 打一个 再打一个

一直打到多少呢 第i个

你是第几行就打到第几个

那么这块

我们是不是可以说

它的思路是什么样子呢

就说这里边的行控制

是小于等于1

<=9 >=1的

是从1开始到九循环

那么内循环里边呢

是什么样的一个规律呢

大家有没有看出来内循环里边

是不是一定也是>=1

但是<=谁

<=9吗

肯定不是了

小于等于行号

<=跟i有关的一个数

那就是<=i

打到第i行的时候

你的最大值就是打的i就可以了

不用打到9

不是一个常量 而是一个变量

这个变量 是谁

是外循环的循环控制变量i

是外循环的循环控制变量i

那这里边我们说

基本思路是不是这样

行号为i

列号呢我们用j表达

那每个位置上

就是在这里边

每一个位置上打的东西是同样的

都是行乘以列

所以打印谁呢

打印i*j

那么 各行上打多少个呢

总是从第一个打到第i个

那这样我们看一下这个程序

应该怎么写呢

我们来看一下打印九九表的这个例子

大家看这个程序里边前面都有了

核心句子是在这

打印谁呢

每一行的每一列上要打i*j

我们这块前边给了这么长串的东西是格式

说两个百分号d

从中间一个* 是说

现在要做j*i=

然后呢一个参数

这个参数是i*j的乘积

要打印这个

那一共把它打印多少行呢

当i和j相等的时候你就换行

不相等的时候呢

就不做这一句了

这个换行应该是在这样

当它相等的时候就换行

这是我们核心的内循环里要做的事

那现在看我们刚才说的

外循环for

应该是怎么样呢

现在这已经用了i了

外循环是i 内循环是j

所以我们外循环变量是i

i从1开始到谁呢

外循环变量<=9的话

终值 循环的终值是9

然后呢 i增量

这是外循环

是打一行

而这里边呢

这件事情是打了一个数

不是打了一行

那我们还要让它打一行

打一行在给个for

然后

内循环控制变量是j j=1

然后

j的表达式呢

是<=谁呢

等于我们刚才说的

第i行打i点 它的终值是i

j++

这是构建起来的 这是内循环

内循环

内循环

每循环一次完成了一行

然后外循环呢 完成了这么多行的打

九行的打印 我们运行一下看

打出来是这样

看上去是这样

那如果我们不想要前面这个等式了呢

这块要改什么

不想要前边的 我们刚才看见的

运行出来的

这个很

前面这个等式 我们只要一个结论的话

那是改什么呢 循环不用改

只改格式就可以了 不要它

然后前面这两个不要了

我们看运行出来的结果

就是我们看到的这个样子

可是 咱给的例子

前面还有一个

打一 打一个前面的 打一个

台头

1 2 3 4 5 6 7 8 9

如果要加那个的话应该在哪加呢

是不在这个地方

而那个地方加的是什么呢

是1—9

是不是我们也可以

用一个单层循环来做这件事情

比如说我这也把i用一下

i从1开始

然后

中间i++

在这里边做什么呢

也做一个printf

printf里边

这里边 我们现在需要打什么东西呢

打的是一个数字

打的是i的值 %d

那这个数字呢

就是i这个计数器

是不这样就可以了

不用换行 在同一行上

然后 我们还

前边呢还有一个是说

一行横线 我们先不管横线 

如果打这个的话

那这一块的格式给多宽呢

咱底下给的是-4

那我前面也给

给这 给-4的格式

看看 运行一下

这块哪里不对了呢

分号落下了

可是刚才编译器没有告诉你那落下了

我们看这为什么多出来一个1呢

1是在哪呢

应该在 大家看是在哪

是在我们跳出循环以后

那个1为什么跟上面的这个行

我们再看一遍

这个1怎么跟1.....9搁在一起了呢

回去看一下什么原因呢

是我们这个for做完了以后

没有换行

那我们把换行这件事情

让它跳出这个循环以后

做一次换行

这就过来了 这是那个乘法九九表

这是表头

如果下边 我们还想打一条横线的话

你可以打一个字符串

你也可以把那个减号循环9次

如果你想把减号循环9次

怎么加呢 大家可以加在这试一下

那这里边最关键的

我们考虑外循环循环控制变量i

这是表头 这个循环是打了一个表头

而这个 是外循环

这个循环控制变量是i

内循环的循环控制变量是j

但是 这里边有一个j的终值是谁呢

是外循环的循环控制变量

这大概是循环嵌套里边最常用的

一种方式 是说什么呢

内循环的终值

会跟外循环的控制变量有关联

是一个有关的表达式

我们下面再看几个图形的打印的题

就会对这一点更有体会

就是说 内循环的循环的终值

会跟外循环的循环控制变量有关系

这个题就这样

大家下去可以还试一下别的格式

C语言程序设计(上)课程列表:

从问题到C语言程序设计

-1.1 计算机的问题求解方法

--1.1.1--程序设计面向的问题

--1.1.2--关于计算

--1.1.3-1关于算法-算法的特征

--1.1.3-2关于算法——算法的表示

--1.1.3-3关于算法——算法的优化

--1.1.4-1-程序设计方法

--1.1.4-2-程序设计方法

--讨论题:数学模型

-1.1 计算机的问题求解方法--作业

-1.2 C语言与C程序

--1.2.1-1-C概述

--1.2.1-2-C概述

--1.2.2-C初步

--讨论题:运算符

-1.3 C语言处理系统与程序调试运行

--1.3.1C程序如何调试运行

--1.3.2常用C语言处理系统

--1.3.3DEVC++的使用-v1

--1.3.4C语言概貌小程序

--例程

-1.4 程序中的人机交互

--1.4 printf用法

--1.4.2 scanf的用法

--例程

--作业讨论区

数据计算实现与顺序结构程序设计(一)

-2.1 算术运算的C程序实现

--2.1.1 第二章

--2.1.2 C语言算术表达式概念

--2.1.3 算术运算的实现

--2.1.4 整数相除

--2.1.5 输入格式造成的计算错误

--2.1.6 求余运算

--2.1.7 自增自减运算

--2.1.8 复合运算

--fangcheng.c

--fangcheng-1.c

--fangcheng-2.c

--fangcheng-3.c

--fangcheng-4.c

--算术混合运算.c

--讨论题:自增自减符

--讨论题:程序输出结果

--讨论题:程序运行结果

-2.1 算术运算的C程序实现--作业

-2.2 关系运算的C程序实现

--2.2.1 关系比较问题

--2.2.2 C语言关系表达式

--2.2.3关系运算优先级

--2.2.4 用关系运算做判断条件

--2.2.5 程序实例

--2.2.6 字符比较

--bukao.c

--pingshifen-1.c

--panduanzhengshu.c

--pingshifen-2.c

--字符比较.c

--讨论题:比较大小

--讨论题:程序的运行

-2.2 关系运算的C程序实现--作业

-第二周作业--作业

数据计算实现与顺序结构程序设计(二)

-2.3 逻辑运算的C程序实现

--2.3.1 逻辑运算问题~1

--2.3.2 逻辑运算表达式

--2.3.3 如何判断闰年

--2.3.4 逻辑运算优先级

--2.3.5 条件运算符

--计算结合性

--2.3.7 一个简单实例

--闰年.c

--自动购票问题.c

--讨论题:逻辑表达式

-2.3 逻辑运算的C程序实现--作业

-2.4 位运算的C程序实现

--2.4.1 什么是位运算

--2.4.2 位运算有哪些

--2.4.3 位运算怎么用

--讨论题:位运算

-2.5 几种很个别的运算

--2.5 几个很个别的运算

--讨论题

--讨论题

-2.5 几种很个别的运算--作业

-2.6 混合运算及数据类型转换

--2.6 混合运算及数据类型转换

--讨论题:数据类型

-2.7 顺序结构程序实例

--2.7.1 第一个程序:三角形

--Video

--三角形面积.c

--讨论题:工业产值

--讨论题:程序无效结果

-2.7 顺序结构程序实例--作业

选择结构的程序设计

-3.1 程序中的路径选择实现

--3.1.1_1 第三章

--3.1.1_2 神奇的if_else

--打印学生成绩.c

--一元二次方程.c

-3.1 程序中的路径选择实现--作业

-3.2 路径中的再选择——嵌套判断

--3.2.1_1 if语句的嵌套

--3.2.1_2三个数排序1029

--例程

--3.2.2 用户登录检查

--三个数排序_未优化.c

--三个数排序_优化.c

--讨论题:程序改错

-3.2 路径中的再选择——嵌套判断--作业

-3.3 复杂判断问题的C程序设计

--3.3 多级选择

--银行存款.c

--讨论题:多级选择

-3.4 多分支问题的C程序设计

--3.4.1 switch语句表达式

--3.4.2 加减乘除计算

--3.4.3 几类说明

--加减乘除运算.c

--讨论题:关于switch

-3.4 多分支问题的C程序设计--作业

-3.5 GOTO的适当使用

--3.5 GOTO的适当使用

-3.6 选择结构的程序实例

--3.6 程序展示

--计算第几天.c

--存款利息__switch实现.c

--讨论题:输出奇数

--讨论题:计算税金

-3.6 选择结构的程序实例--作业

-第四周作业--作业

循环结构的程序设计(一)

-4.1 需要重复执行的程序

--4.1.1----第四章~1

--4.1.2---while实现先判断后循环~1

--4.1.3----while循环的应用-录入速度~1

--求和.c

--打印学生成绩.c

--统计录入速度.c

--求平均数.c

-4.1 需要重复执行的程序--作业

-4.2 至少要执行一次的循环

--4.2.1至少要执行一次的循环

--4.2.2-do-while循环应用

--成绩录入_do while实现.c

--n的阶乘.c

--字符分类统计.c

--讨论题:关于while

-4.2 至少要执行一次的循环--作业

-4.3 已知循环次数用for语句

--4.3.1--用for语句控制循环次数

--4.3.2--循环的应用-求和

--求和问题.c

--斐波那契数列问题.c

--数列求和.c

--讨论题:循环语句的不同

--讨论题:循环语句

-4.3 已知循环次数用for语句--作业

-4.4 循环控制——简单循环应用

--4.4.1-循环的应用-找数-水仙花数

--4.4.2--循环的应用-求素数

--水仙花数.c

--讨论题:死循环

--讨论题:continue和break

--讨论题:猜数字

-循环结构的程序设计(一)--4.4 循环控制——简单循环应用

循环结构的程序设计(二)

-4.5 循环的嵌套

--4.5.1 循环的嵌套——九九乘法表

--4.5.2 循环的嵌套——打印三角形

--打印九九乘法表.c

--打印实心三角图案.c

--打印空心三角图案.c

--讨论题:程序运行

-4.5 循环的嵌套--作业

-4.6 break与continue

--4.6 循环中断与继续循环——break再讨论

--最大素数.c

--求正数个数及平均数.c

-4.6 break与continue--作业

-4.7 循环的综合应用

--4.7.1 数的排列组合问题

--4.7.2 循环综合应用——穷举算法

--4.7.3 循环综合应用——满足条件的数

--4.7.4 循环综合应用——求最后三位数

--4.7.5 循环综合应用——打印空心图案

--数的排列组合.c

--数的排列组合优化.c

--鸡兔同笼.c

--找满足条件的数.c

--输出14的13次方的最后三位数.c

--打印空心字符.c

--讨论题:打印图形

--讨论题:打印空心图形

--讨论题:计算闰年

-第六周作业

--虚拟实验:循环程序设计实验

-第六周作业--作业

数组(一)

-5.1 同类有序数据处理问题

--5.1.0 数组开篇

--5.1.1 同类有序数据存储问题

--讨论题:下标变量与下标

-5.2 一维数组的定义和引用

--5.2.1_1 数组的定义~1

--5.2.1_2 数组的初始化

--5.2.2 一维数组的输入输出

--5.2.3 一维数组的应用1--成绩排序(选择法)~2

--5.2.4 一维数组的应用2--Fibonacci数列

--数组定义.c

--数组初始化.c

--输出大于平均值的数.c

--反向输出.c

--选择法_成绩排序.c

--求斐波那契数列前n项.c

--讨论题:对称数

--讨论题:关于'\0'

-5.2 一维数组的定义和引用--作业

-5.3 一维字符串数组

--5.3 一维字符串数组11.24~1

--用函数测试字符串长度.c

--讨论题:编程

-5.4 字符串处理函数

--5.4 字符数组的输入与输出

--字符串反向.c

--字符串函数

--讨论题:程序如何运行

--讨论题:黑色星期五

数组(二)

-5.5 二维数组的定义与使用

--5.5 二维数组定义

--二维数组的定义与初始化.c

-5.6 二维数组的输入输出

--5.6 二维数组的输入与输出

--二位数组输出_矩阵输出.c

--讨论题:随机数据存储

-5.6 二维数组的输入输出--作业

-5.7 二维数组的应用‍

--5.7.1二维数组的应用-转置矩阵

--5.7.2 用一维数组方式引用二维数组元素

--转置矩阵.c

--找二维数组最大数.c

--讨论题:修改程序

--讨论题:关于随机数函数 rand()

-5.8 二维字符数组

--5.8 单词排序

--单词排序.c

--讨论题:回文字符串

-5.8 二维字符数组--作业

-5.9 数组综合应用

--5.9.1 应用1——学生成绩统计

--统计成绩.c

--5.9.2 应用2——删除重复字符

--删除串中的重复字符串

--5.9.3 应用3——统计字符

--5.9_4数组的应用4--矩阵相乘

--统计字符次数.c

--讨论题:洗牌

-本期课程结束语

--end

-第八周编程作业

--虚拟实验:冒泡排序算法程序设计实验

期末复习

-《C语言程序设计(上)》期末复习参考

--html

期末复习答案

-《C语言程序设计(上)》期末复习参考答案

--html

4.5.1 循环的嵌套——九九乘法表笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。