当前课程知识点:C语言程序设计(上) >  循环结构的程序设计(一) >  4.1 需要重复执行的程序 >  4.1.3----while循环的应用-录入速度~1

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

4.1.3----while循环的应用-录入速度~1在线视频

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

下一节:求和.c

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

4.1.3----while循环的应用-录入速度~1课程教案、知识点、字幕

大家好 那下来我们再来看

两个用while

构建起来的循环的两个小例子

第一个是 测试录入的速度

那这件事情说得是什么呢

是说 你从键盘上录入

英文呢 咱简单期间我们就录入英文的文章

并且把这文章显示在屏幕上

然后呢你记录我录入的字符的个数

那就是说看谁录入的快了

直到我不录入的时候为止

那这个问题里边呢

大家想想 是不是这样子

计算机在这个程序里边都做哪件事

我们再看一下 录入

就说 它要获取到你这个字符

并且显示

然后呢 还要数数

数你录了多少个

那大家总结一下是不是这样

它每一次你敲一下键盘它都是

获取这个 你键入的字符

显示并计数

获取 显示 计数这三件事

那这个过程

获取 显示 计数这件事情

做n次

那到底多少次呢

这件事情里边是说

它的特点是什么呢

我循环的次数是不确定的

每个人可以是不一样的

那我到什么时候结束呢

我想结束的时候我按一个标记

用设标记的方法来结束这个循环

这是while适合解决的问题

就是说 循环的次数不确定

我用设标记的方法来结束这个循环

那我们看

这个流程是不应该是这样

先定义个字符型的变量

以保存你这个字符

下来呢 我们就是判断说

你这个字符是不是那个结束标记

如果我们正着说的话 你是结束标记吗

yes 那yes是循环执行还是不执行呢

while的规则是

yes循环是执行的 循环体是执行的

no是不执行的

那我们实际上这个问题现在说

你是结束标记吗 你是的话要出去

那么怎么做呢 我们把这条件反过来说一下

说你不是循环标记吗 yes

不是我就执行这个循环

否则我就出去

那这就解决了

ch里边不等于我刚才设的那个标记

咱现在设了是#

我用这#

那不是# 我就进来

如果不是的话我就还继续在录入

那么录入的里边

你做三件事 我们刚才说了

获取 输入这个ch

然后把它输出显示出来 并且计数

循环体里做这三件事

完了无条件的返回到循环入口处

现在说 你刚才敲得那个字符

敲得这个输入的这个ch是结束标记吗

我们是反着问的

别忘了 不是结束标记吗

直到说

的确是结束标记了

循环就会到了 输出 结束

结束这个红颜色的这个循环体

输出你的统计结果

就数的那个数

这就是我们这个问题里边

的一个流程

那么我们看一下

这个 要把它变成程序的话

大家先看一下前边

都是一样的 跟我们平常的程序是一样的

这块看一下 蓝颜色的time

大家没有用到过 这还有一个time

这是time t1 time t2 这是做什么呢

time我们看前边多了一个include

includ time.h

是说获取时间的函数

获取你当前时间的函数

哪个是当前

执行time的这个片刻

那个瞬间

执行到它的 那个瞬间的时间

那你要用这个函数

这是一个内部函数 你这前面就要包含

这个时间函数的.h头文件

那我们看

在这个while之前

也就说你要进行录入

并计数的这件事情之前

我们获取一个时间

我们在结束它之后再获取一个时间

那这两个时间的差

就是你所用的时间

我们看这底下一定有说

t2-t1那边的t2-t1

这是引用的那个时间

那我们看在循环体里红颜色的这一块

表达的意思是什么呢

while给你的条件

就我们刚才说的 你不是结构标记吗

给那个条件

然后在循环体里边完成这三件事

获取字符 显示计数

这样的事情

我们到编译环境下把这个程序调试一下看看

大家看在这里边

循环的入口在这 while

while里边应该是我们原来说的条件

循环体进入之前

获取了一个时间

结束了循环以后

在获取了一个时间

两个时间在这相减

这就是我们用的整个录入的时间

那在这个录入里边

我们刚才说循环体里边应该做三件事

那三件事

是说 你得到一个字符

并且把它显示在屏幕上

然后计数 做这三件事

我们看一下这里边只有计数

获取这个字符和显示都没做

那我们要不要在这应该加一句

scanf读一个字符

在printf显示

要不要这样加呢

我们想到一个函数 看看大家有没有想到

getchar

这个函数的功能是什么呢

大家还记不记得

这个函数的功能是

从键盘上获取一个字符

在你获取这个字符的过程中

他自然就把这个字符

就给你显示在屏幕上

目的是为了让大家确认你敲得对不对

那我们 这个函数的功能

即获取到 到这个字符

又显示在屏幕上

所以我们完成了 获取并显示

你要我们把这个东西送到ch

然后做什么呢 我们在这一块

加一个括弧

在h里边 得到了一个字符

然后 怎么让这个条件

判断这个条件呢

我们刚才说设了一个标记 #

那现在是说 等于这个#还是不等于呢

我们说 yes是执行循环

那是 不是#的时候

不等于这个#的时候

来执行这个循环

这就是我们这个括弧里边构建的条件

是说什么呢 前面这个括弧里的东西

不等于#你就做下边的这件事

而下边的事现在变得简单了 只做一件事

计数

是因为前两件事

获取这个字符并显示已经在这里边完成了

所以呢 巧妙地应用这些函数

会使你的程序 变得非常的简洁

那当这个循环结束的时候

那这两个时间

我们在这显示说

你送的字符数n

计数器里边的n就是你的字符数

而你用的时间呢

就是它两个相减的差

运行一下看看

我们来敲了一些字符

好 不想敲的时候呢

我们给它一个#

它就出来了

说你敲了53个字符

每秒中4.42个

每秒中敲4.42个

这个程序里边是 想告诉大家 是

循环的在这入口

循环在那里出口 循环体里边只有一句话

那循环的构建这个条件的过程里边

完成了一个函数体里边需要的一些功能

这是可以的

那最主要的是说我们通过设一个标记

来使这个循环结束

什么时候会用它呢

当我这个循环次数未知的时候

我需要用标记结束

那这个循环的

判断条件呢 就是以这个标记

为它的判断条件

那这里边还捎带了给大家说了

你需要 用到一些内部函数的时候

就需要包含它的头文件

并且这些内部函数的适当的使用

会为你的程序

增加了非常方便的一些手段

使得你的程序就会变得简洁

在这个程序里边

大家 其实是有很多需要讨论的

我们看见这个程序里边

这个

我实际上已经是把括弧删掉了

前面没有括弧了

我们运行这个程序

跟刚才的结果是一样的

它是对的

看一下

大家看 是一样的 可以统计

然后呢 每秒中多少次

大家看

这里边呢实际上我们是少掉了一个括弧

优先集已经发生了变化

那他是 已经是先做关系运算

在赋值

最后是拿ch里边的东西

去做条件判断的

那这样为什么也是正确的呢

大家一起分析一下

ch里边实际上你最后得到了一个逻辑结果

逻辑值 而while正是要判断的是逻辑值

我们并不提倡这样写

这是想说

构建条件的不同

以及你的循环体里边

构建的流程的不同

这一块呢 还是有非常大的空间的

给了大家一些作业下去

希望大家仔细的去 在编程序的过程里边

可以考虑一下程序的一个算法的一个选取

那我们在下边看下一个程序

我们再看第二个例子

求平均数 谁的平均数呢

我直接把程序给出来 大家看看

前面都一样

我给一个total 定义了一个total

来放和

放和

那我们知道

这个求和 就是Σ了

一个累加

你拿进来一个数 加法

就是循环体里边做什么呢

取一个数相加

取一个数相加

那每一次只做这个 那循环就死掉了

是死循环了 那一定是说

取一个数相加

然后问你做够10个数了吗

那么 循环体里边变成了

取一个数相加

然后 再说什么呢

相加完了以后呢

计数往前走一步

计数往前走一步 所以我们看这一块

在这里边 我们循环体里边的

条件是什么呢 是一个计数器count 

我们这个count是

从谁开始的呢

从0开始的 那就0到9

那做10次 0到9做10次

那么 循环变量是count 

循环的终值是10

到10就不做了

那在这里边 我们看

每进的循环体

蓝颜色的这块我们先做了一个计数

++count ++

计数一次 然后你在做

说 你取一个数scanf一个数

然后累加 返回去

说 你count里边现在

增加到第几了 是8还是9啊

<10吗 <10再做

否则我就不做了 到哪呢

这个花括弧的外边

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.1.3----while循环的应用-录入速度~1笔记与讨论

也许你还感兴趣的课程:

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