C语言循环语句课件四章

上传人:仙*** 文档编号:177564189 上传时间:2022-12-26 格式:PPT 页数:43 大小:618.50KB
收藏 版权申诉 举报 下载
C语言循环语句课件四章_第1页
第1页 / 共43页
C语言循环语句课件四章_第2页
第2页 / 共43页
C语言循环语句课件四章_第3页
第3页 / 共43页
资源描述:

《C语言循环语句课件四章》由会员分享,可在线阅读,更多相关《C语言循环语句课件四章(43页珍藏版)》请在装配图网上搜索。

1、循环结构循环结构循环结构循环结构循环结构循环结构李晓玲Page 2本章结构本章结构循环结构循环结构 循环结构概述循环结构概述 循环结构的嵌套循环结构的嵌套 for语句语句 while语句语句dowhile语句语句Page 3本章目标本章目标v了解循环结构、循环语句了解循环结构、循环语句v重点掌握重点掌握for语句、语句、while语句和语句和dowhile语句的语句的语法形式、执行顺序及用法语法形式、执行顺序及用法v掌握循环结构的嵌套使用方法掌握循环结构的嵌套使用方法Page 4循环结构概述循环结构概述v为什么用循环结构?为什么用循环结构?v循环的基本步骤是什么?循环的基本步骤是什么?v循环结

2、构的定义?循环结构的定义?Page 5为什么用循环结构?为什么用循环结构?v在程序设计中经常会遇到在某一条件成立时,在程序设计中经常会遇到在某一条件成立时,重复执行某些操作。重复执行某些操作。v例如,求例如,求:sum=1+2+3+4+nPage 6循环的基本步骤循环的基本步骤(1)给)给sum赋值赋值0,i赋值赋值1;(2)令)令sum=sum+i,i=i+1;(3)若)若i=n,则重复执行(则重复执行(2)(4)输出)输出sum的值的值Page 7循环结构的定义循环结构的定义v循环结构:循环结构:就是在给定条件成立的情况下,重就是在给定条件成立的情况下,重复执行一个程序段;当给定条件不成立

3、时,退出复执行一个程序段;当给定条件不成立时,退出循环,再执行循环下面的程序。循环,再执行循环下面的程序。v循环语句:循环语句:实现循环结构的语句称为循环语句。实现循环结构的语句称为循环语句。v在在C中,循环语句有以下三种:中,循环语句有以下三种:for语句语句 while语句语句 dowhile语句语句Page 8for语句语句(P29)v语法形式:语法形式:for(表达式表达式1;表达式表达式2;表达式表达式3)语句语句v说明:说明:圆括号内的三个表达式用分号圆括号内的三个表达式用分号“;”隔开;隔开;表达式表达式1称为循环初始化表达式,通常为赋值表达式;称为循环初始化表达式,通常为赋值表

4、达式;表达式表达式2称为循环条件表达式,通常为关系或逻辑表达称为循环条件表达式,通常为关系或逻辑表达式;式;表达式表达式3称为循环增量表达式,通常为赋值表达式,增称为循环增量表达式,通常为赋值表达式,增量大小通常称为步长;量大小通常称为步长;语句称为循环体,可以是单个语句,也可以是多个语语句称为循环体,可以是单个语句,也可以是多个语句。句。for(循环初始化;循环条件;循环增量循环初始化;循环条件;循环增量)Page 9for语句语句v表达式表达式1可以省略可以省略 for(;表达式表达式2;表达式表达式3)v表达式表达式1和和3都可以省略都可以省略 for(;表达式表达式2;)如果表达式如果

5、表达式3省略,则在循环体内应该有改变循环条件省略,则在循环体内应该有改变循环条件的语句的语句v表达式表达式1和和3可以是简单表达式,也可以是逗号表可以是简单表达式,也可以是逗号表达式达式 for(i=0,j=100;i=j;i+,j-)k=i+j;i=1;for(;i=100;i+)sum=sum+i;Page 10for语句语句v执行顺序执行顺序(1)计算表达式)计算表达式1的值;的值;(2)计算表达式)计算表达式2的值,若表达的值,若表达式式2的值为的值为true,则转到,则转到(3);若为若为false,则结束循环,则结束循环(3)执行循环体语句;)执行循环体语句;(4)计算表达式)计算

6、表达式3的值,返回的值,返回(2)继续执行。继续执行。v流程图流程图表达式表达式 2语句语句 falsetrue求解表达式求解表达式1 求解表达式求解表达式3 Page 11省略表达式省略表达式1 1的写法的写法同时省略表达式同时省略表达式1 1和和3 3时的写法时的写法for语句语句v例例 求自然数求自然数110之和。之和。#includevoid main()int i,sum=0;for(i=1;i=10;i+)sum+=i;printf(“sum=%dn”,sum);分析:分析:本题需要用累本题需要用累加算法,累加过程是加算法,累加过程是一个循环过程,可以一个循环过程,可以用用forf

7、or语句实现。语句实现。Page 12for语句书上例子及练习语句书上例子及练习vP30 例例2-7vP32 例例2-8 sum=1-1/3+1/5-1/7+1/nvP33 例例2-9 求求n!vP34 练习练习2-13到到2-17v复习分支语句和复习分支语句和for语句的综合例题:语句的综合例题:P46 例例3-4 P50 例例3-6 P54 例例3-9Page 13while语句(当型循环)语句(当型循环)v语法形式:语法形式:while(表达式表达式)语句语句v说明:说明:表达式称为循环控制条件表达式,一般为关系表达式表达式称为循环控制条件表达式,一般为关系表达式或逻辑表达式,必须用一对

8、圆括号或逻辑表达式,必须用一对圆括号“()”括起来。括起来。语句称为循环体,可以是单个语句,也可以是多个语语句称为循环体,可以是单个语句,也可以是多个语句。句。循环控制条件循环控制条件循环体循环体Page 14while语句(当型循环)语句(当型循环)v执行顺序执行顺序 判断表达式(循环控制条件)判断表达式(循环控制条件)的值的值 若表达式的值为若表达式的值为true,则执,则执行循环体(语句)行循环体(语句)若表达式的值为若表达式的值为false,则执,则执行行while语句后的语句语句后的语句v流程图流程图v注意:在循环体中,一般注意:在循环体中,一般应该包含改变循环条件表应该包含改变循环

9、条件表达式的语句。达式的语句。表达式表达式 语语 句句 falsetruePage 15while语句(当型循环)语句(当型循环)v例例 求自然数求自然数110之和。之和。分析:本题需要用累加算法,累加分析:本题需要用累加算法,累加过程是一个循环过程,可以用过程是一个循环过程,可以用while语句实现。语句实现。流程图流程图i=10 sum=sum+ii=i+1 falsetrue开开 始始结结 束束输出输出sum sum=0 i=1 Page 16while语句(当型循环)语句(当型循环)v例例 求自然数求自然数110之和的源程序。之和的源程序。#includevoid main()int

10、i=1,sum=0;while(i=10)sum+=i;i+;printf(“sum=%dn”,sum);运行结果:运行结果:sum=55Page 17while语句书上例子及练习语句书上例子及练习vP58 例例4-1vP61 例例4-2vP62 练习练习4-1、4-2、4-3、4-4Page 18dowhile语句(直到型循环)语句(直到型循环)v语法形式:语法形式:do 语句语句 while(表达式表达式);v说明:说明:表达式称为循环控制条件表达式,一般为关系表达式表达式称为循环控制条件表达式,一般为关系表达式或逻辑表达式,必须用一对圆括号或逻辑表达式,必须用一对圆括号“()”括起来。括

11、起来。语句称为循环体,可以是单个语句,也可以是多个语语句称为循环体,可以是单个语句,也可以是多个语句。句。dowhile语句语句以分号结束以分号结束。循环控制条件循环控制条件循环体循环体以分号结以分号结束束Page 19dowhile语句(直到型循环)语句(直到型循环)v执行顺序执行顺序 先执行语句,后判断表达式的值先执行语句,后判断表达式的值 若表达式的值为若表达式的值为true,则继续执,则继续执行循环体(语句)行循环体(语句)若表达式的值为若表达式的值为false,则结束,则结束循环,执行循环,执行dowhile语句后的语句后的语句语句v流程图流程图v注意:在循环体中,一般应该注意:在循

12、环体中,一般应该包含改变条件表达式的语句。包含改变条件表达式的语句。语语 句句 falsetrue表达式表达式 Page 20dowhile语句(直到型循环)语句(直到型循环)v例例 用用dowhile语句求自然数语句求自然数110之和。之和。分析:本题需要用累加算法,累加分析:本题需要用累加算法,累加过程是一个循环过程,可以用过程是一个循环过程,可以用dowhile语句实现。语句实现。流程图流程图开开 始始结结 束束输出输出sum sum=0i=1sum=sum+ii=i+1falsetruei=10 Page 21dowhile语句(直到型循环)语句(直到型循环)v例例 求自然数求自然数1

13、10之和的源程序。之和的源程序。#includevoid main()int i=1,sum=0;dosum+=i;i+;while(i=10);printf(“sum=%dn”,sum);运行结果:运行结果:sum=55Page 22dowhile语句书上例子及练习语句书上例子及练习vP62 例例4-3vP64 练习练习4-5Page 23dowhile和和while语句的区别语句的区别v相同点:都是实现循环结构的语句相同点:都是实现循环结构的语句v区别:区别:while语句先判断表达式的值,为语句先判断表达式的值,为true时,执行循环体;时,执行循环体;(先判断,后执行)(先判断,后执行

14、)dowhile语句先执行循环体,再判断表达式的值。语句先执行循环体,再判断表达式的值。(先执行,后判断)(先执行,后判断)思考题:在什么情况下,思考题:在什么情况下,while和和dowhile语句的条件表达式和循环体相同,而循环次数却语句的条件表达式和循环体相同,而循环次数却不同?不同?Page 24循环结构的嵌套循环结构的嵌套v在程序设计中,一个循环语句的循环体又包含一在程序设计中,一个循环语句的循环体又包含一个个完整的完整的循环结构时,构成多重循环,又称为循循环结构时,构成多重循环,又称为循环语句的嵌套。环语句的嵌套。for()do while();for()do while();Pa

15、ge 25循环结构的嵌套循环结构的嵌套v例例 写出右面图形的源程序。写出右面图形的源程序。#includevoid main()int i,j;for(i=1;i=3;i+)for(j=1;j=3)位数字的数位数字的数,它等于每个数它等于每个数字的字的n次幂之和。次幂之和。9.输入两个正整数输入两个正整数m和和n,求其最大公约数和最小公倍数。,求其最大公约数和最小公倍数。Page 303.3.求求1 1599599中能被中能被3 3整除,且至少有整除,且至少有一位数字为一位数字为5 5的所有整数。的所有整数。v判断判断a、b、c中是否有中是否有5:将:将1599中三位整数中三位整数i分分解成个

16、位、十位、百位,分别存放在变量解成个位、十位、百位,分别存放在变量a、b、c中。然后判断这三个变量是否含中。然后判断这三个变量是否含5。将三位整数。将三位整数i(设设i=513)分解成个位、十位、百位的方法是:分解成个位、十位、百位的方法是:c=i/100;/百位百位 b=i%100/10;/十位十位 a=i%100%10;/个位个位Page 31#includevoid main()int i,a,b,c;for(i=1;i=599;i+)c=i/100;/百位百位 b=i%100/10;/十位十位 a=i%100%10;/个位个位if(i%3=0&(a=5|b=5|c=5)printf(%

17、d能被能被3整除且包含整除且包含5n,i);Page 324.4.输出输出9 9*9 9口诀表口诀表v#includev void main()v vint i,j;vfor(i=1;i=9;i+)vvfor(j=1;j=i;j+)vprintf(%d*%d=%2d ,i,j,i*j);vprintf(n);vv Page 33打印下列图形打印下列图形v#includev void main()v vint i,j;vfor(i=1;i=5;i+)vvfor(j=1;j=i;j+)vprintf(*);vprintf(n);vv Page 34打印下列图形打印下列图形v#includev vo

18、id main()v vint i,j;vfor(i=1;i=i;j-)vprintf();vfor(j=1;j=i;j+)vprintf(*);vprintf(n);vv Page 35打印下列图形打印下列图形v#includev void main()v vint i,j;vfor(i=1;i=i;j-)vprintf(*);vprintf(n);vv Page 36打印下列图形打印下列图形v#includev void main()v int i,j,n;v printf(请输入棱形的对角线半长度请输入棱形的对角线半长度n:);v scanf(%d,&n);v for(i=1;i=n;i

19、+)/画上半个棱形画上半个棱形v for(j=1;j=40-i;j+)printf();v for(j=1;j0;i-)/画下半个棱形画下半个棱形v for(j=1;j=40-i;j+)printf();v for(j=1;j=2*i-1;j+)printf(*);v printf(n);v v Page 37打印下列图形打印下列图形v#includev#includev void main()v vint i,j;vfor(i=-3;i=3;i+)vvfor(j=0;j=10+abs(i);j+)vprintf();vfor(j=1;j=2*(4-abs(i)-1;j+)vprintf(*)

20、;vprintf(n);vv Page 387.7.找出找出10001000以内的所有完数以内的所有完数v#includev void main()v vint i,j,s;vfor(i=1;i=1000;i+)vvs=0;vfor(j=1;ji;j+)vif(i%j=0)s=s+j;vif(s=i)printf(%dn,s);vv Page 39求求100之内的素数之内的素数 v只能被只能被1和本身整除的数和本身整除的数v判断一个数判断一个数a是否为素数,只需将它除以是否为素数,只需将它除以2(sqrt(a)取整)即可,如果都不能整除,则取整)即可,如果都不能整除,则a就就是素数。是素数。P

21、age 40v#includev#includev void main()v vint a,k,i,n;vn=0;vfor(a=2;a=100;a+)/a从从2循环到循环到100vvk=sqrt(a);vfor(i=2;ik)/若若ik,则则a为素数为素数vvprintf(%10d,a);/输出素数输出素数vn=n+1;/对素数进行统计个数对素数进行统计个数vvvprintf(n);v 求求100之内的素数之内的素数 Page 41输入两个正整数输入两个正整数m和和n,求其最,求其最大公约数和最小公倍数。大公约数和最小公倍数。v辗转相除法是利用以下性质来确定两个正整数 a 和 b 的最大公因子

22、的:1.a b,令r为所得余数(0rb)若 r=0,算法结束;b 即为答案。2.互换:置 ab,br,并返回第一步。Page 42v求两个自然数m与n的最大公约数采用辗转相除法 设最小公倍数(Lease common multiple)为lcm=m*n;最大公约数(Greatest common divisor)为gcd。v可采用如下循环实现:(循环前lcm=m*n)r=m%n;mn;nr;直到r=0为止,此时最大公约数为gcd=n,最小公倍数为lcm=lcm/gcdv例如:求m=4与n=6的最大公约数:r=4%6=4;m6;n4;r=6%4=2;m4;n2;r=4%2=0;则最大公约数gcd

23、=n=2 最小公倍数lcm=4*6/2=12Page 43v#includev#includev void main()v int m,n,lcm,gcd,r;v printf(please input m,n:);v scanf(%d%d,&m,&n);v lcm=m*n;/因为循环后,因为循环后,m和和n都会改变,所以现在先把它赋值都会改变,所以现在先把它赋值v while(m%n!=0)/当余数不等于当余数不等于0时,进行循环时,进行循环v r=m%n;/r为为m除以除以n得到的余数得到的余数v m=n;/把除数把除数n的值赋给被除数的值赋给被除数mv n=r;/把余数把余数r的值赋给除数的值赋给除数nv v gcd=n;v lcm=lcm/gcd;v printf(最小公倍数是:最小公倍数是:%dn,lcm);v printf(最大公约数是:最大公约数是:%dn,gcd);v

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!