当前课程知识点:C语言程序设计(上) >  循环结构的程序设计(一) >  4.4 循环控制——简单循环应用 >  4.4.1-循环的应用-找数-水仙花数

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

4.4.1-循环的应用-找数-水仙花数在线视频

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

下一节:4.4.2--循环的应用-求素数

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

4.4.1-循环的应用-找数-水仙花数课程教案、知识点、字幕

大家好 那我们前边讨论了

关于循环里边c提供的三个句子

while do while for

那大家会不会有一个疑问是

看上去这几个句子实现的不都是循环的控制吗

的确是

比如说while是当型循环

for呢 实际上也是当型循环

就是当条件满足的时候

它才进行这个循环

那for和while

有没有区别呢

我们看for的时候呢

是不看见是这样

循环从哪里开始到哪里结束 每步走多少

这是要非常明确 非常确定

而while呢

是不是在里边我们说

当循环次数不知道的时候

我们也可以在里边设一个标记

所以 我们说无论是当型循环

还是直到型循环

无论是while for 还是do while

他还是有些许个差别的

尤其是说 对不同的应用

我们会觉得说

在哪一种应用里边

用while更方便 还是用for更方便

所以 我们下边给大家几个例子

来讨论一下

这几个语句的一个具体的应用

这我们先给一个例子是

所有的 什么数呢

那对于这样的问题大家想想看

我是从100开始找

能被3整除吗

那能被7整除吗

那还有的数是

不能被3整除 但是能被7整除

我也把它打印出来 或者

我们这边或者能被3整除 或者被7整除

那这里边 我们大家看

我要找的数据的范围是哪里呢

从100开始到200

100—200之间的每一个整数

那这样的话 最方便的是应该用

哪一个语句来构建这个循环呢

我们看初值有了

终值有了 每步增量也有了

显然for最合适

我们看一下用for怎么样来编写这个程序

我们来看一下这道题

题目要求是打印10到

100—200之间的所有的符合这个条件

什么条件

被3或者被7整除的这样的数

那这个题目非常明显

初值是100 终值是200

每一步增长1

这是最典型的for的应用

那这一块 for的初值

我们现在用num

来作为它的循环控制变量

num<=终值吗

200 num从哪里开始 100开始

增量是增量1 用++

这个for里边包含了

它的初值 终值以及判断

所以循环体里边

非常单纯的就做它这个

能被3或者7整除吗

我们用这个 求余

这个数与3求余 有余数吗

等于0就是整除了

或者是被7整除了吗

如果符合这个条件

这就是我们要的数输出

否则 就到循环出口处

在出口处增量

这个题目用for做

就非常的简单 程序也很简洁

大家下去可以自己试一下

我们就不编译运行了

那下面我们在看一个例题

水仙花数

那什么叫水仙花数呢

就是指的这样的一个三位数

那这个三位数是说

每个位数上的数字的3次方的和

等于它本身

举个例子 比如说153

那我们百位数上的1的3次方

十位数上的5的3次方

和个位数上的3的3次方相加

就是

正好是153

我们要找的 就是这样的数

从你给到数据区间里边

去找满足这个条件的三位数

这个也比较典型是用for的

为什么呢

是因为你一定要给一个数据区间的

我们的数据区间n

是给的100

那是在for之前给了这个n

所以呢

在for里边的初值的这一部分

分号之前是省略了的

这是可以的 在前边

但是通常呢

我们要把n=100

放到这 这是没有问题的

那这一块 我们就不要了

不要这个赋初值的这个过程了

把n给它赋值100

放在这 然后呢

n是这块的循环控制变量

小于1000吗 那就是到999

然后呢

这是第三个表达式n增量

循环体里边做什么呢

就是我们要判断说

每一位算的数字

要取每一位上的数字

比如说我们是100

那我们就取个位数上的0

十位数上的0 和百位数上的1

比如说123一样

个位数是3 十位上2

百位数上1

我们要取每一个数位上的数

那么这个方法是什么呢

比如说我们取个位数

这三行是分别取

个位数 十位数 百位数

取个位数

比如说我们是123

那除以10

那肯定余数是3了

这个3被送在g里边

好了 那这是个位数取出来了

同样的道理 十位数

百位数 我们也取出来它的十位数

百位数上的数字

那在剩下的事情我们就是做

3个数位上的数字的3次方相加

然后问它

等于你刚才

说的这个循环控制变量吗

当前的这个数吗

如果是的 这就是我们要的数

否则 我们不要这个了

到这个出口处

循环的出口处

这循环的出口处

在这个出口处 增量

然后下一次的判断

所以我们看见呢

for也是一个当型循环

就先判断后执行的这样的循环

那咱们把这个程序

拿来运行一下 我们看一下

这是刚才我们看到的程序

<1000

那运行一下它看一下

这是我们找出来的

一共有4个数

在100—999之间

一共有4个这样的水仙花数

满足这个条件的

像这样的题目我们是说

刚才咱是说这一块

你可以把它

这个n=100这件事

我们可以把它放在循环体里边去做

那这块咱就不用这个

在运行一下看

跟刚才一样

也就说你这个初值可以在括弧里边给

也可以在前边给

当然 我们如果用for的话

我们尽量是在这个for里边

解决这里边的所有问题

程序看上去更简洁

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.4.1-循环的应用-找数-水仙花数笔记与讨论

也许你还感兴趣的课程:

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