c语言课件 第五章 循环结构程序设计
注意:
(1)while语句的特点是先计算表达式的值, 然后根据表达式的值决定是否执行循环体中的语 句。因此,如果表达式的值一开始就为“假”, 那么循环体一次也不执行。
(2)当循环体为多个语句组成,必须用{ }括起 来,形成复合语句。
(3)循环三要素:循环控制变量赋初值、循环 条件、循环控制变量更新。
5.3 while语句(当型循环)
结论: 编制循环程序要注意下面几个方面 (1)遇到数列求和,求积的一类问题,一般可以 考虑使用循环解决。 (2)注意循环初值的设置。一般对于累加器常常 设置为0,累乘器常常设置为1。 (3)循环体中做要重复的工作,同时要保证使循 环倾向于结束。循环的结束由while中的表达式(条 件)控制。
5.5 for语句(当型循环)
例:有以下程序 #include<stdio.h>
void main( ) { int t=1,i=5; for(;i>=0;i--) t*=i; printf(“%d\n”,t); } 执行后输出结果是【】
main() { … for(i=1; i<=n; i++) fact=fact*i; … } main() { i=1;fact=1; for(; i<=n; i++) fact=fact*i; … }
5.5 for语句(当型循环)
(3)表达式2可省略,不判断循环终止条件,循 环无终止地进行,成为“死循环”。则应该在其它位 置(如:循环体)安排检测及退出循环的机制。
5.5 for语句(当型循环)
for语句的一般形式是 :
表达式1; while(表达式2) { 循环体; 表达式3; }
for(表达式1;表达式2;表达式3) 循环体;
for(循环变量赋初值;循环条件;循环变量修正) 循环体;
5.5 for语句(当型循环)
for语句的一般形式是 :
5.5 for语句(当型循环)
for语句的一般形式是 :
5.5 for语句(当型循环)
例:for(i=1;i<=3;i++)
{
sum=sum+3; }
5.5 for语句(当型循环)
说明:for语句的其他形式(参看p.118-120) (1)for语句中表达式1,表达式2,表达式3都可 以省略,甚至三个表达式都同时省略,但是起分隔作 用的“;”不能省略。 (2) 省略表达式1可省略,则应该在for语句前给 循环变量赋初值。
5.3 while语句(当型循环)
例:利用while语句编写程序计算1+2+3+…+100。
#include<stdio.h> void main() { int i=1,sum=0; while(i<=100) { sum=sum+i; i++; } printf(“%d\n”,sum); }
5.3 while语句(当型循环)
例:利用while语句编写程序计算1+2+3+…+100。
i=1,sum=0 当i≤100 sum=sum+i i=i+1
打印sum
算法: S0: sum=0,i=1(循环初值) S1: sum=sum+i, i=i+1(循环体) S2: 如果i小于或等于100,返回重新执 行步骤S1及S2;否则,算法结束(循环 控制)。 sum中的值就是1+2+…+100的值。 从算法可以看出这是一个典型的循 环结构程序 。
5.3 while语句(当型循环) 例:利用while语句计算机1+1/2+1/4+1/6…+1/50.
#include<stdio.h> void main() { float sum=1; int i=2; while(i<=50) { sum=sum+1.0/i; i+=2; } printf(“%f\n”,sum); }
(下接)
5.3 while语句(当型循环)
注意: (4)循环体可以为空。
如:while((c=getchar( ))!=„A‟);表示从键盘上输入 字符,直到输入的字符为‘A‟为止。
等价于:c=getchar( ); while(c!=„A‟) c=getchar( );
5.3 while语句(当型循环)
5.4 do-while语句(直到型循环)
do-while语句的一般形式是 : do {
循环体
语句序列; } while(表达式);
循环条件
注意:分号不可丢
5.4 do-while语句(直到型循环) while语句表达的是:
“当满足条件的时候,一直做某事”
do while 语句表达的是:
“一直做某事,直到不满足条件为止”
表达式1,表达式3可以是简单表达式,也可以是 逗号表达式.
for(i=1,fact=1.0; ; i++)
for(i=0,j=100; i<=j; i++,j--) a[i]a[j]
5.5 for语句(当型循环)
小结:
从上面的说明可以看出,C语言的for语 句功能强大,使用灵活,可以把循环体和一些 与循环控制无关的操作也都可以作为表达式出 现,程序短小简洁。但是,如果过分使用这个 特点会使for语句显得杂乱,降低程序可读性。 建议不要把与循环控制无关的内容放在for语 句的三个表达式中,这是程序设计的良好风格。
5.3 while语句(当型循环)
5.3 while语句(当型循环) 例:利用while语句计算1+1/2+1/4+1/6…+1/50.
解:观察数列1,1/2,1/4,1/6…,1/50。 分子全部为1,分母除第一项外,全部是偶数。 同样考虑用循环实现。
其中累加器用sum表示(初值设置为第一项1,以 后不累加第一项),循环控制用变量i(i:2-50)控 制,数列通项:1/i。
5.5 for语句(当型循环)
(5)同时省略表达式1、表达式3,只有表达式2, 此时相当于while语句。如:
i=1 for(; i<=3; ) { s=s+k; i++; } i=1 while (i<=3) { s=s+k; i++; }
5.5 for语句(当型循环)
(6)表达式2一般是关系表达式或逻辑表达式,但 也可以是数值表达式或字符表达式,只要其值不等于 0就执行循环体。
如: for((k=1; k-4; k++ ) s=s+k; 仅当k的值等于4时终止循环, k-4是数值表达式
for( ; (c=getchar())!=‟\n‟ ; i+=c);
空语句
5.5 for语句(当型循环)
(7)表达式1可以是设置循环变量初值的表达式 (常用),也可以是与循环变量无关的其它表达式;
5.5 for语句(当型循环)
例:读程序,判断程序的功能 #include<stdio.h>
void main( )
{char c; for(;(c=getchar( ))!=„\n‟;)
putchar(c); } 输入ok!<回车>,输出_______
读入一个字符,当它不是回车符就输出.
5.3 while语句(当型循环)
例:如k=1; while(k<=100){s=s+k;k++;}
循环控制 表达式
循环体
循环控 制变量
5.3 while语句(当型循环)
例:在while(x)语句中的x与下面条件表达 式等价的是:
A)x==0 B)x==1; C)x!=1; D)x!=0
5.3 while语句(当型循环)
5.3 while语句(当型循环) 例:若从终端上由第一列开始输入以下数据 right?yes[回车] 则程序运行的结果为:
#include<stdio.h> void main( ) { char c; c=getchar( );
while(c!=„?‟)
{putchar(c); c=getchar( ); } }
5.3 while语句(当型循环)
例:求100以内奇数、偶数之和。
5.3 while语句(当型循环)
例:求100以内奇数、偶数之和。
5.3 while语句(当型循环)
例 : 输 入 两 个 正 整 数 m 和 n, 求 其 最 大 公 约 数 ( common divisor) 和 最 小 公 倍 数 ( common multiple)。 分析:用辗转相除法求最大公约数。
5.2 goto语句及用goto构成循环
二、用if_goto语句构成循环 例:计算1+2+3+……+100的和。
void main() {int i=1,sum=0; loop: sum+=i; i++; if(i>100)goto PRT; goto loop; PRT: printf("sum=%d",sum); }
循环控制变量:在循环条件中控制条件是真是 假的变量,如源程序中的变量i。 要写出一个正确的循环结构,对控制变量做三 方面工作:一是控制变量赋初值;二是把控制变 量写入正确的循环条件;三是控制变量的更新调 整。
5.3 while语句(当型循环)
例:读程序
5.3 while语句(当型循环)
考虑:s=1!+2!+3!+……+n!
5.1 概述
实现循环的语句 (四种): 1.用goto语句和if语句构成循环。 不提倡。 2. 用while语句。当型循环——先判断后执行。 3.用do-while语句。直到型循环——先执行后判 断。 4.用for语句构成的。多功能。
(1)while语句的特点是先计算表达式的值, 然后根据表达式的值决定是否执行循环体中的语 句。因此,如果表达式的值一开始就为“假”, 那么循环体一次也不执行。
(2)当循环体为多个语句组成,必须用{ }括起 来,形成复合语句。
(3)循环三要素:循环控制变量赋初值、循环 条件、循环控制变量更新。
5.3 while语句(当型循环)
结论: 编制循环程序要注意下面几个方面 (1)遇到数列求和,求积的一类问题,一般可以 考虑使用循环解决。 (2)注意循环初值的设置。一般对于累加器常常 设置为0,累乘器常常设置为1。 (3)循环体中做要重复的工作,同时要保证使循 环倾向于结束。循环的结束由while中的表达式(条 件)控制。
5.5 for语句(当型循环)
例:有以下程序 #include<stdio.h>
void main( ) { int t=1,i=5; for(;i>=0;i--) t*=i; printf(“%d\n”,t); } 执行后输出结果是【】
main() { … for(i=1; i<=n; i++) fact=fact*i; … } main() { i=1;fact=1; for(; i<=n; i++) fact=fact*i; … }
5.5 for语句(当型循环)
(3)表达式2可省略,不判断循环终止条件,循 环无终止地进行,成为“死循环”。则应该在其它位 置(如:循环体)安排检测及退出循环的机制。
5.5 for语句(当型循环)
for语句的一般形式是 :
表达式1; while(表达式2) { 循环体; 表达式3; }
for(表达式1;表达式2;表达式3) 循环体;
for(循环变量赋初值;循环条件;循环变量修正) 循环体;
5.5 for语句(当型循环)
for语句的一般形式是 :
5.5 for语句(当型循环)
for语句的一般形式是 :
5.5 for语句(当型循环)
例:for(i=1;i<=3;i++)
{
sum=sum+3; }
5.5 for语句(当型循环)
说明:for语句的其他形式(参看p.118-120) (1)for语句中表达式1,表达式2,表达式3都可 以省略,甚至三个表达式都同时省略,但是起分隔作 用的“;”不能省略。 (2) 省略表达式1可省略,则应该在for语句前给 循环变量赋初值。
5.3 while语句(当型循环)
例:利用while语句编写程序计算1+2+3+…+100。
#include<stdio.h> void main() { int i=1,sum=0; while(i<=100) { sum=sum+i; i++; } printf(“%d\n”,sum); }
5.3 while语句(当型循环)
例:利用while语句编写程序计算1+2+3+…+100。
i=1,sum=0 当i≤100 sum=sum+i i=i+1
打印sum
算法: S0: sum=0,i=1(循环初值) S1: sum=sum+i, i=i+1(循环体) S2: 如果i小于或等于100,返回重新执 行步骤S1及S2;否则,算法结束(循环 控制)。 sum中的值就是1+2+…+100的值。 从算法可以看出这是一个典型的循 环结构程序 。
5.3 while语句(当型循环) 例:利用while语句计算机1+1/2+1/4+1/6…+1/50.
#include<stdio.h> void main() { float sum=1; int i=2; while(i<=50) { sum=sum+1.0/i; i+=2; } printf(“%f\n”,sum); }
(下接)
5.3 while语句(当型循环)
注意: (4)循环体可以为空。
如:while((c=getchar( ))!=„A‟);表示从键盘上输入 字符,直到输入的字符为‘A‟为止。
等价于:c=getchar( ); while(c!=„A‟) c=getchar( );
5.3 while语句(当型循环)
5.4 do-while语句(直到型循环)
do-while语句的一般形式是 : do {
循环体
语句序列; } while(表达式);
循环条件
注意:分号不可丢
5.4 do-while语句(直到型循环) while语句表达的是:
“当满足条件的时候,一直做某事”
do while 语句表达的是:
“一直做某事,直到不满足条件为止”
表达式1,表达式3可以是简单表达式,也可以是 逗号表达式.
for(i=1,fact=1.0; ; i++)
for(i=0,j=100; i<=j; i++,j--) a[i]a[j]
5.5 for语句(当型循环)
小结:
从上面的说明可以看出,C语言的for语 句功能强大,使用灵活,可以把循环体和一些 与循环控制无关的操作也都可以作为表达式出 现,程序短小简洁。但是,如果过分使用这个 特点会使for语句显得杂乱,降低程序可读性。 建议不要把与循环控制无关的内容放在for语 句的三个表达式中,这是程序设计的良好风格。
5.3 while语句(当型循环)
5.3 while语句(当型循环) 例:利用while语句计算1+1/2+1/4+1/6…+1/50.
解:观察数列1,1/2,1/4,1/6…,1/50。 分子全部为1,分母除第一项外,全部是偶数。 同样考虑用循环实现。
其中累加器用sum表示(初值设置为第一项1,以 后不累加第一项),循环控制用变量i(i:2-50)控 制,数列通项:1/i。
5.5 for语句(当型循环)
(5)同时省略表达式1、表达式3,只有表达式2, 此时相当于while语句。如:
i=1 for(; i<=3; ) { s=s+k; i++; } i=1 while (i<=3) { s=s+k; i++; }
5.5 for语句(当型循环)
(6)表达式2一般是关系表达式或逻辑表达式,但 也可以是数值表达式或字符表达式,只要其值不等于 0就执行循环体。
如: for((k=1; k-4; k++ ) s=s+k; 仅当k的值等于4时终止循环, k-4是数值表达式
for( ; (c=getchar())!=‟\n‟ ; i+=c);
空语句
5.5 for语句(当型循环)
(7)表达式1可以是设置循环变量初值的表达式 (常用),也可以是与循环变量无关的其它表达式;
5.5 for语句(当型循环)
例:读程序,判断程序的功能 #include<stdio.h>
void main( )
{char c; for(;(c=getchar( ))!=„\n‟;)
putchar(c); } 输入ok!<回车>,输出_______
读入一个字符,当它不是回车符就输出.
5.3 while语句(当型循环)
例:如k=1; while(k<=100){s=s+k;k++;}
循环控制 表达式
循环体
循环控 制变量
5.3 while语句(当型循环)
例:在while(x)语句中的x与下面条件表达 式等价的是:
A)x==0 B)x==1; C)x!=1; D)x!=0
5.3 while语句(当型循环)
5.3 while语句(当型循环) 例:若从终端上由第一列开始输入以下数据 right?yes[回车] 则程序运行的结果为:
#include<stdio.h> void main( ) { char c; c=getchar( );
while(c!=„?‟)
{putchar(c); c=getchar( ); } }
5.3 while语句(当型循环)
例:求100以内奇数、偶数之和。
5.3 while语句(当型循环)
例:求100以内奇数、偶数之和。
5.3 while语句(当型循环)
例 : 输 入 两 个 正 整 数 m 和 n, 求 其 最 大 公 约 数 ( common divisor) 和 最 小 公 倍 数 ( common multiple)。 分析:用辗转相除法求最大公约数。
5.2 goto语句及用goto构成循环
二、用if_goto语句构成循环 例:计算1+2+3+……+100的和。
void main() {int i=1,sum=0; loop: sum+=i; i++; if(i>100)goto PRT; goto loop; PRT: printf("sum=%d",sum); }
循环控制变量:在循环条件中控制条件是真是 假的变量,如源程序中的变量i。 要写出一个正确的循环结构,对控制变量做三 方面工作:一是控制变量赋初值;二是把控制变 量写入正确的循环条件;三是控制变量的更新调 整。
5.3 while语句(当型循环)
例:读程序
5.3 while语句(当型循环)
考虑:s=1!+2!+3!+……+n!
5.1 概述
实现循环的语句 (四种): 1.用goto语句和if语句构成循环。 不提倡。 2. 用while语句。当型循环——先判断后执行。 3.用do-while语句。直到型循环——先执行后判 断。 4.用for语句构成的。多功能。
合集下载
第5章-循环结构程序设计PPT优秀课件
17
5.3.1 前测型Do…Loop循环语句
格式:
Do [While | Until <条件表达式>] <语句块> [Exit Do] <语句块>
Loop
18
5.3.1 前测型Do…Loop循环语句
前测型Do…Loop循环的流程图
Do While…Loop流程图
Do Until…Loop流程图
条件表达式 值为真?
格式:
Do <语句块> [Exit Do] <语句块>
Loop [While | Until <条件表达式>]
23
5.3.1 后测型Do…Loop循环语句
说明:
后测型Do…Loop循环语句与前测型Do…Loop循环语句的主 要区别在于:
后测型要先执行一次循环体,再判断条件;而前测型要 先判断条件,然后根据判断结果决定是否执行循环体。因此 对于后测型,不管条件是否满足,循环体至少有一次执行机 会。
16
5.3 Do…Loop循环语句
导入:
Do…Loop循环也属于条件型循环,即根据条件的 成立与否来决定是否执行循环。Do…Loop循环的应 用具有很强的灵活性,主要体现在:它既能指定循环 开始条件,又能指定循环结束条件;既能构成前测型 Do…Loop循环语句,又能构成后测型Do…Loop循 环语句。
25
5.3.1 后测型Do…Loop循环语句 【例5-10】将400~600间能够被3整除的数 输出(上机练习)
【例5-11】(略)
26
5.4 循环嵌套
介绍:
一个循环结构中又包含一个或多个循环结构被称为 循环嵌套,或称多重循环。 多重循环对嵌套的层数没有限制。有几层嵌套,就 称为几重循环,如二重循环、三重循环、四重循环 等。一般地,把嵌套在一个循环体内部的另一个循 环结构称为内循环;这样,嵌套了其他内循环部分 的循环结构就称为外循环。 为了使多重循环结构具有较好的可读性,通常用缩 进方式书写相应的源代码。
5.3.1 前测型Do…Loop循环语句
格式:
Do [While | Until <条件表达式>] <语句块> [Exit Do] <语句块>
Loop
18
5.3.1 前测型Do…Loop循环语句
前测型Do…Loop循环的流程图
Do While…Loop流程图
Do Until…Loop流程图
条件表达式 值为真?
格式:
Do <语句块> [Exit Do] <语句块>
Loop [While | Until <条件表达式>]
23
5.3.1 后测型Do…Loop循环语句
说明:
后测型Do…Loop循环语句与前测型Do…Loop循环语句的主 要区别在于:
后测型要先执行一次循环体,再判断条件;而前测型要 先判断条件,然后根据判断结果决定是否执行循环体。因此 对于后测型,不管条件是否满足,循环体至少有一次执行机 会。
16
5.3 Do…Loop循环语句
导入:
Do…Loop循环也属于条件型循环,即根据条件的 成立与否来决定是否执行循环。Do…Loop循环的应 用具有很强的灵活性,主要体现在:它既能指定循环 开始条件,又能指定循环结束条件;既能构成前测型 Do…Loop循环语句,又能构成后测型Do…Loop循 环语句。
25
5.3.1 后测型Do…Loop循环语句 【例5-10】将400~600间能够被3整除的数 输出(上机练习)
【例5-11】(略)
26
5.4 循环嵌套
介绍:
一个循环结构中又包含一个或多个循环结构被称为 循环嵌套,或称多重循环。 多重循环对嵌套的层数没有限制。有几层嵌套,就 称为几重循环,如二重循环、三重循环、四重循环 等。一般地,把嵌套在一个循环体内部的另一个循 环结构称为内循环;这样,嵌套了其他内循环部分 的循环结构就称为外循环。 为了使多重循环结构具有较好的可读性,通常用缩 进方式书写相应的源代码。
C语言第五章循环结构程序控制PPT教学课件
PF
T
A
i++; 说明:}
其中prinwtfh(i“lesu是m=关%键d字, a;ver(表=%达f式\n”)通,su常m是,su关m系/20表.0达) ;式 或逻} 辑表达式;<语句>作为 while 循环语句的循环体, 可以是一条语句,也可以是复合语句。
2020/12/10
上一页
下一页 1
注意: 1.只有 <表达式> 的值是非0时,才执行< 语句 > 给出的循环体。
2020/12/10
上一页
下一页 8
例: 1要.点fo说r 明语例例例例:句::::fi=o中r1if=o(;的r1i=(;1表i;=;i1<达i<;==式;1i10+010+可0;;)i)以+s{u+省ms)us略m=u=m(susum分=m+s号u+i mi;不;+i能i+;+省;)} 。 2.如果例省f:o略rfo(表r; i(达<;=式;1)0{20s,u; m)将{=形ss成uumm无+=限i s;u循}m环+i。; i++ ; } 3.表达例式:3fo也r(s可um以=省0; 略i<=。100 ;i++)sum = sum+i ; 45..可3 个以表同达时pffcfooorh式省rrira((nisr同(略=tuf;0cm(时表,;“(j==\cn0省达1=,T0ig=略0式he1et;;,c1iic<h和<h=此a=a1表rjr0(时;0达)iis;)+相i++!:式=%,+当j)3‘sc-\。于ur\-nm’)”;wk=),h=sciulie)m+(;+j1i;); …
C语言程序设计第5章-循环结构程序设计ppt课件
分析:循环进行的条件是:i≤k和flag=0。因为在i>k时, 显然不必再去检查n是否能被整除,此外如果flag=1, 就表示n已被某一个数整除过,肯定是非素数无疑, 也不必再检查了。只有i≤k和flag=0两者同时满足才 需要继续检查。循环体只有一个判断操作:判断n 能否被i整除,如不能,则执行i=i+1,即i的值加1, 以便为下一次判断作准备。如果在本次循环中n能 被i整除,则令flag=1,表示n已被确定为非素数了, 这样就不再进行下一次的循环了。如果n不能被任 何一个i整除,则flag始终保持为0。因此,在结束 循环后根据flag的值为0或1,分别输出n是素数或非 素数的信息。
while(i<=k && !flag)
if(n % i==0) flag=1;
else i=i+1;
if(!flag)
printf("%d is a prime
number.\n",n);
else
printf("%d is not a prime
number.\n",n);
}
.
返回本章首页
第5章 循环结构程序设计
【例5_1】用while语句求p=n!
#include<stdio.h>
int main()
{ int i=1,p=1; //循环初始化部分 while(i<=5) //循环控制部分
{ p=p*i; //循环体语句 i++; //循环修改部分
}
printf("5!=%d\n",p);
return 0;
10-3,则再执行循环体,把 term 值赋给term1.然后再累加 到s中去。可以看出:程序中 term1代表当前要累加的项, term代表下一项,如果这两项 之差未超过10-3,就将下一项 加到s 中。
while(i<=k && !flag)
if(n % i==0) flag=1;
else i=i+1;
if(!flag)
printf("%d is a prime
number.\n",n);
else
printf("%d is not a prime
number.\n",n);
}
.
返回本章首页
第5章 循环结构程序设计
【例5_1】用while语句求p=n!
#include<stdio.h>
int main()
{ int i=1,p=1; //循环初始化部分 while(i<=5) //循环控制部分
{ p=p*i; //循环体语句 i++; //循环修改部分
}
printf("5!=%d\n",p);
return 0;
10-3,则再执行循环体,把 term 值赋给term1.然后再累加 到s中去。可以看出:程序中 term1代表当前要累加的项, term代表下一项,如果这两项 之差未超过10-3,就将下一项 加到s 中。
C语言课件第5章循环结构程序设计2
18
思考 1、如果去掉循环体 中的大括号会怎样? 2、在循环体中,使 循环条件趋向于不满 足(假)的语句是哪 条?
第5章
循环结构程序设计
举例
while和do-while循环的比较。
此程序的 功能?
#include <stdio.h> int main() { int i,sum=0; scanf("%d",&i); while(i<=10) { sum=sum+i; i++; } printf("sum=%d\n",sum); return 0; }
第5章
循环结构程序设计
举例
现有某班20名学生的C语言成绩,求该班学生的C语 言的平均成绩。即:输入20个学生的成绩,计算平 均值,输出平均值。
分析:定义变量表示学生的成绩、全班总和、平均成绩。 如果定义20个变量保存20 算法设计: 个成绩,程序中计算成绩 第一步:输入20个学生的成绩 总和会有什么问题? 第二步:计算成绩总和 (用累加求和的方法)
运行结果:凵2550
#include <stdio.h> int main() { int i=1, n; float fac=1; printf("请输入n:"); scanf ("%d",&n); while (i<=n) { fac=fac*i; i++; } printf("%.0f\n",fac); return 0; } 请输入n:5
分析
求1~100的累加和。
换一种思路:
sum=sum+n;
首先设置一个累计器sum,其初值为0,利用sum += n来计算(n依次 取1、2、……、100),只要解决以下3个问题即可: (1)将n的初值置为1; (2)每执行1次“sum += n;”后,n增1; (3)当n增到101时,停止计算。此时,sum的值就是1~100的累 计和。
思考 1、如果去掉循环体 中的大括号会怎样? 2、在循环体中,使 循环条件趋向于不满 足(假)的语句是哪 条?
第5章
循环结构程序设计
举例
while和do-while循环的比较。
此程序的 功能?
#include <stdio.h> int main() { int i,sum=0; scanf("%d",&i); while(i<=10) { sum=sum+i; i++; } printf("sum=%d\n",sum); return 0; }
第5章
循环结构程序设计
举例
现有某班20名学生的C语言成绩,求该班学生的C语 言的平均成绩。即:输入20个学生的成绩,计算平 均值,输出平均值。
分析:定义变量表示学生的成绩、全班总和、平均成绩。 如果定义20个变量保存20 算法设计: 个成绩,程序中计算成绩 第一步:输入20个学生的成绩 总和会有什么问题? 第二步:计算成绩总和 (用累加求和的方法)
运行结果:凵2550
#include <stdio.h> int main() { int i=1, n; float fac=1; printf("请输入n:"); scanf ("%d",&n); while (i<=n) { fac=fac*i; i++; } printf("%.0f\n",fac); return 0; } 请输入n:5
分析
求1~100的累加和。
换一种思路:
sum=sum+n;
首先设置一个累计器sum,其初值为0,利用sum += n来计算(n依次 取1、2、……、100),只要解决以下3个问题即可: (1)将n的初值置为1; (2)每执行1次“sum += n;”后,n增1; (3)当n增到101时,停止计算。此时,sum的值就是1~100的累 计和。
c语言第5章循环结构程序设计课件
6
第五章 循环结构程序设计
典型例题(例5-8) :求两个整数的最大公约数、最小公倍数
12 8 4 mn r
84
0
mn r
最大公约数 4 最小公倍数 12*8/4=24
求最大公约数的N-S流程图
辗转相除法
7
第五章 循环结构程序设计
void main( )
{ int n, m, nm, r, t; printf( " Enter m, n= ? " ) ; scanf( " % d% d" , & m, & n) ; nm= n* m; if ( m< n)
例如: for(i=1;i<=n;) { t=t*i; i++; } (4)可以省略表达式1和表达式3,只有表达式2 , 即只给循环条件。
i=1; for(;i<=n;)
{t=t*i; i++;}
14
第五章 循环结构程序设计
(5) 3个表达式都可省略。 例如: for(;;) 语句 相当于 while(1)语句。
3
第五章 循环结构程序设计
例: 编程序求: s=1+2+3+……+100
main()
{ int s=0,i=1;
while (i<=100) { s=s+i;
思考:如何求n!
i++; }
printf("S=%d",s); }
4
第五章 循环结构程序设计 二、 do...while语句
Do-while语句的一般形式为:
(1) while( ) {… while( ) {…}
第五章 循环结构程序设计
典型例题(例5-8) :求两个整数的最大公约数、最小公倍数
12 8 4 mn r
84
0
mn r
最大公约数 4 最小公倍数 12*8/4=24
求最大公约数的N-S流程图
辗转相除法
7
第五章 循环结构程序设计
void main( )
{ int n, m, nm, r, t; printf( " Enter m, n= ? " ) ; scanf( " % d% d" , & m, & n) ; nm= n* m; if ( m< n)
例如: for(i=1;i<=n;) { t=t*i; i++; } (4)可以省略表达式1和表达式3,只有表达式2 , 即只给循环条件。
i=1; for(;i<=n;)
{t=t*i; i++;}
14
第五章 循环结构程序设计
(5) 3个表达式都可省略。 例如: for(;;) 语句 相当于 while(1)语句。
3
第五章 循环结构程序设计
例: 编程序求: s=1+2+3+……+100
main()
{ int s=0,i=1;
while (i<=100) { s=s+i;
思考:如何求n!
i++; }
printf("S=%d",s); }
4
第五章 循环结构程序设计 二、 do...while语句
Do-while语句的一般形式为:
(1) while( ) {… while( ) {…}
C言语课件-第5章 循环结构程序设计
C言语课件-第5章 循环结 构程序设计
C言语课件-第5章 循环结构程序设计
循环结构的概念
1 基本概念
循环结构是一种程序设计结构,用于重复执 行特定的代码块。
2 分类
循环结构可以分为while循环、do while循环和 for循环。
3 循环流程控制结构
循环结构由控制条件、循环体和循环控制语 句组成。
3 下一学习步骤建议
提供学习者下一步继续深入学习的建议和资源。
4 循环的几种实现方式
循环可以通过不同的控制条件和循环体实现 不同的功能。
while循环
1 语法格式
while(条件表达式) { // 循环语句块
}
2 例子讲解
使用while循环计算1到100的和。
do while循环
1 语法格式
do { // 循环语句块
} while(条件表达式);
2 例子讲解
1 游戏规则
玩家猜测计算机生成的随 机数字,根据提示进行猜 测,直到猜对或者达到最 大次数。
2 代码实现分析
介绍猜数字游戏的代码实 现思路和算法。
3 代码实现细节讲解
详细演示如何使用循环结 构实现猜数字游戏。
小结
1 学习重点回顾
回顾循环结构的概、语法和应用场景。
2 学习难点梳理
梳理学习过程中遇到的难点和需要进一步掌握的知识点。
1 break语句
用于跳出循环体,终止循环的执行。
2 continue语句
用于跳过本次循环的剩余代码,继续下一次 循环。
循环小结
1 循环的优缺点
循环结构可以使代码更简洁、高效,但滥用可能导致逻辑错误和性能问题。
2 循环应用的场景举例
循环结构常用于处理数组、列表、文件等需要重复操作的情况。
C言语课件-第5章 循环结构程序设计
循环结构的概念
1 基本概念
循环结构是一种程序设计结构,用于重复执 行特定的代码块。
2 分类
循环结构可以分为while循环、do while循环和 for循环。
3 循环流程控制结构
循环结构由控制条件、循环体和循环控制语 句组成。
3 下一学习步骤建议
提供学习者下一步继续深入学习的建议和资源。
4 循环的几种实现方式
循环可以通过不同的控制条件和循环体实现 不同的功能。
while循环
1 语法格式
while(条件表达式) { // 循环语句块
}
2 例子讲解
使用while循环计算1到100的和。
do while循环
1 语法格式
do { // 循环语句块
} while(条件表达式);
2 例子讲解
1 游戏规则
玩家猜测计算机生成的随 机数字,根据提示进行猜 测,直到猜对或者达到最 大次数。
2 代码实现分析
介绍猜数字游戏的代码实 现思路和算法。
3 代码实现细节讲解
详细演示如何使用循环结 构实现猜数字游戏。
小结
1 学习重点回顾
回顾循环结构的概、语法和应用场景。
2 学习难点梳理
梳理学习过程中遇到的难点和需要进一步掌握的知识点。
1 break语句
用于跳出循环体,终止循环的执行。
2 continue语句
用于跳过本次循环的剩余代码,继续下一次 循环。
循环小结
1 循环的优缺点
循环结构可以使代码更简洁、高效,但滥用可能导致逻辑错误和性能问题。
2 循环应用的场景举例
循环结构常用于处理数组、列表、文件等需要重复操作的情况。
c语言课件-第五章-循环结构程序设计
5.5 for语句(当型循环)
例:读程序,判断程序的功能 #include<stdio.h> void main( ) {char c; for(;(c=getchar( ))!=‘\n’;) putchar(c); } 输入ok!<回车>,输出_______
读入一个字符,当它不是回车符就输出.
5.5 for语句(当型循环)
分析:用辗转相除法求最大公约数。
5.3 while语句(当型循环)
5.3 while语句(当型循环)
例:利用while语句计算1+1/2+1/4+1/6…+1/50.
解:观察数列1,1/2,1/4,1/6…,1/50。
分子全部为1,分母除第一项外,全部是偶数。 同样考虑用循环实现。
其中累加器用sum表示(初值设置为第一项1,以 后不累加第一项),循环控制用变量i(i:2-50)控 制,数列通项:1/i。
5.2 goto语句及用goto构成循环
一、goto语句 goto语句的一般形式:goto 语句标号
语句标号:用于定义程序中的某个位置 用标识符表示,不能只用数字
如:goto start(对) goto 20(错)
goto语句的功能是无条件地转到标号所指的语句。
因为滥用goto语句会破坏结构化,所以应该限制 使用goto语句。
i=1 for(; i<=3; )
{ s=s+k; i++; }
i=1 while (i<=3)
{ s=s+k; i++; }
5.5 for语句(当型循环)
(6)表达式2一般是关系表达式或逻辑表达式,但 也可以是数值表达式或字符表达式,只要其值不等于 0就执行循环体。
C语言及程序设计课件1第五章 循环结构程序设计
5.1.3 do-while语句的一般形式
do-while 语句的特点是先执行循环体一次,再判断循环条件 是否成立,以决定循环是不是需要继续被执行,相当于执行循环直到
循环继续条件不再成立时终止循环。
do-while语句实现“直到“型循环结构。其一般形式如下:
do 循环体语句
while(表达式);
功能:先执行循环体语句,然
图5-1 while语句流程图
5.1.1 while语句的一般形式
注意:如果循环体包含有2条或2条以上的语句,则必须用一对花括 号将语句括起来,即循环体是一个复合语句。不加花括号就表示循环 体只包含一条语句。
如下面的程序段: while(表达式 ) 语句1; 语句2;
当循环条件成立时,只有语句1是循环体语句,会被重复执行, 语句2不属于while语句范围,只有while循环语句结束后才被执行。
① while语句是先判断条件,然后决定是否执行循环体。如果循环继 续条件(即表达式)的值一开始就为“假”(0),则循环体不会被执行, 而是直接执行循环语句的后续语句,while循环又称入口条件循环。
② 为使循环能正常结束,应保证每次执行循环体后,表达式的值会 有一种向“假”变化的趋势,如果i的值不变化,表达式i<=n的值就永 远为“真”,循环体就不断被执行不能停止,变成了无限循环(死循 环)。
与while循环一样,为使循环能正常结束,do-while语句也应 保证每次执行循环体后,表达式的值会有一种向“假”变化的趋势, 防止出现无限循环条件。
5.2 r 循环结构和循环的嵌套 从前面的while循环和do-while的循环例子可以看出,有三个
执行步骤:①执行循环前对循环控制变量进行初始化; ②在循环体中更新循环控制变量的值; ③在循环继续条件中判断循环控制变量是否接近终止值。
C语言程序设计第5章循环结构程序设计简明教程PPT课件
第5章
循环结构程序设计
第5 章
循环结构程序设计
当你对C语言程序设计有了一定了解和掌握后,若 想要处理一些更复杂的任务时,当满足某一条件想反 复执行某个程序时,该如何处理呢?
控制语句能够控制程序的流程,根据判断决 定重复运行什么。
程序的三种结构
•顺序结构 •选择结构 •循环结构
本章所
学Байду номын сангаас目标
了解循环结构的特点; 掌握while语句、do-while语句、for语句; 掌握while循环结构、do-while循环结构、for循 环结构 掌握break和continue语句的使用; 理解循环嵌套。 掌握各种循环的应用;
C语言程序设计
第5章 循环结构程序设计
4
【例5.1】输入10个数,求它们的和并输出。
#include <stdio.h> int main() { float x,sum=0; int k=0; while(k<10) { printf("please input x:\n"); scanf("%f",&x); //输入一个数 sum=sum+x; //进行累加 k++; } printf("sum=%f\n",sum); return 0; } 运行结果: please input x:5↙ please input x:7↙ please input x:8↙ please input x:14↙ please input x:53↙ please input x:12↙ please input x:35↙ please input x:9↙ please input x:10↙ please input x:47↙ sum=200
循环结构程序设计
第5 章
循环结构程序设计
当你对C语言程序设计有了一定了解和掌握后,若 想要处理一些更复杂的任务时,当满足某一条件想反 复执行某个程序时,该如何处理呢?
控制语句能够控制程序的流程,根据判断决 定重复运行什么。
程序的三种结构
•顺序结构 •选择结构 •循环结构
本章所
学Байду номын сангаас目标
了解循环结构的特点; 掌握while语句、do-while语句、for语句; 掌握while循环结构、do-while循环结构、for循 环结构 掌握break和continue语句的使用; 理解循环嵌套。 掌握各种循环的应用;
C语言程序设计
第5章 循环结构程序设计
4
【例5.1】输入10个数,求它们的和并输出。
#include <stdio.h> int main() { float x,sum=0; int k=0; while(k<10) { printf("please input x:\n"); scanf("%f",&x); //输入一个数 sum=sum+x; //进行累加 k++; } printf("sum=%f\n",sum); return 0; } 运行结果: please input x:5↙ please input x:7↙ please input x:8↙ please input x:14↙ please input x:53↙ please input x:12↙ please input x:35↙ please input x:9↙ please input x:10↙ please input x:47↙ sum=200
