C语言循环语句课件四章.ppt

上传人:牧羊曲112 文档编号:6503854 上传时间:2023-11-07 格式:PPT 页数:43 大小:547.50KB
返回 下载 相关 举报
C语言循环语句课件四章.ppt_第1页
第1页 / 共43页
C语言循环语句课件四章.ppt_第2页
第2页 / 共43页
C语言循环语句课件四章.ppt_第3页
第3页 / 共43页
C语言循环语句课件四章.ppt_第4页
第4页 / 共43页
C语言循环语句课件四章.ppt_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《C语言循环语句课件四章.ppt》由会员分享,可在线阅读,更多相关《C语言循环语句课件四章.ppt(43页珍藏版)》请在三一办公上搜索。

1、循环结构,李晓玲,Chapter2,本章结构,循环结构,循环结构概述,循环结构的嵌套,for语句,while语句,dowhile语句,Chapter3,本章目标,了解循环结构、循环语句重点掌握for语句、while语句和dowhile语句的语法形式、执行顺序及用法掌握循环结构的嵌套使用方法,Chapter4,循环结构概述,为什么用循环结构?循环的基本步骤是什么?循环结构的定义?,Chapter5,为什么用循环结构?,在程序设计中经常会遇到在某一条件成立时,重复执行某些操作。例如,求:sum=1+2+3+4+n,Chapter6,循环的基本步骤,(1)给sum赋值0,i赋值1;,(2)令sum=

2、sum+i,i=i+1;,(3)若i=n,则重复执行(2),(4)输出sum的值,Chapter7,循环结构的定义,循环结构:就是在给定条件成立的情况下,重复执行一个程序段;当给定条件不成立时,退出循环,再执行循环下面的程序。循环语句:实现循环结构的语句称为循环语句。在C中,循环语句有以下三种:for语句while语句dowhile语句,Chapter8,for语句(P29),语法形式:for(表达式1;表达式2;表达式3)语句说明:圆括号内的三个表达式用分号“;”隔开;表达式1称为循环初始化表达式,通常为赋值表达式;表达式2称为循环条件表达式,通常为关系或逻辑表达式;表达式3称为循环增量表达

3、式,通常为赋值表达式,增量大小通常称为步长;语句称为循环体,可以是单个语句,也可以是多个语句。,for(循环初始化;循环条件;循环增量),Chapter9,for语句,表达式1可以省略for(;表达式2;表达式3)表达式1和3都可以省略for(;表达式2;)如果表达式3省略,则在循环体内应该有改变循环条件的语句表达式1和3可以是简单表达式,也可以是逗号表达式for(i=0,j=100;i=j;i+,j-)k=i+j;,i=1;for(;i=100;i+)sum=sum+i;,Chapter10,for语句,执行顺序(1)计算表达式1的值;(2)计算表达式2的值,若表达式2的值为true,则转到

4、(3);若为false,则结束循环(3)执行循环体语句;(4)计算表达式3的值,返回(2)继续执行。流程图,表达式 2,语句,false,true,求解表达式1,求解表达式3,Chapter11,省略表达式1的写法同时省略表达式1和3时的写法,for语句,例 求自然数110之和。#includevoid main()int i,sum=0;for(i=1;i=10;i+)sum+=i;printf(“sum=%dn”,sum);,?,分析:本题需要用累加算法,累加过程是一个循环过程,可以用for语句实现。,Chapter12,for语句书上例子及练习,P30 例2-7P32 例2-8 sum=

5、1-1/3+1/5-1/7+1/nP33 例2-9 求n!P34 练习2-13到2-17复习分支语句和for语句的综合例题:P46 例3-4P50 例3-6P54 例3-9,Chapter13,while语句(当型循环),语法形式:while(表达式)语句说明:表达式称为循环控制条件表达式,一般为关系表达式或逻辑表达式,必须用一对圆括号“()”括起来。语句称为循环体,可以是单个语句,也可以是多个语句。,循环控制条件,循环体,Chapter14,while语句(当型循环),执行顺序判断表达式(循环控制条件)的值若表达式的值为true,则执行循环体(语句)若表达式的值为false,则执行while

6、语句后的语句流程图注意:在循环体中,一般应该包含改变循环条件表达式的语句。,表达式,语 句,false,true,Chapter15,while语句(当型循环),例 求自然数110之和。分析:本题需要用累加算法,累加过程是一个循环过程,可以用while语句实现。流程图,Chapter16,while语句(当型循环),例 求自然数110之和的源程序。#includevoid main()int i=1,sum=0;while(i=10)sum+=i;i+;printf(“sum=%dn”,sum);,运行结果:sum=55,Chapter17,while语句书上例子及练习,P58 例4-1P61

7、 例4-2P62 练习4-1、4-2、4-3、4-4,Chapter18,dowhile语句(直到型循环),语法形式:do 语句 while(表达式);说明:表达式称为循环控制条件表达式,一般为关系表达式或逻辑表达式,必须用一对圆括号“()”括起来。语句称为循环体,可以是单个语句,也可以是多个语句。dowhile语句以分号结束。,循环控制条件,循环体,以分号结束,Chapter19,dowhile语句(直到型循环),执行顺序先执行语句,后判断表达式的值若表达式的值为true,则继续执行循环体(语句)若表达式的值为false,则结束循环,执行dowhile语句后的语句流程图注意:在循环体中,一般

8、应该包含改变条件表达式的语句。,语 句,false,true,表达式,Chapter20,dowhile语句(直到型循环),例 用dowhile语句求自然数110之和。分析:本题需要用累加算法,累加过程是一个循环过程,可以用dowhile语句实现。流程图,Chapter21,dowhile语句(直到型循环),例 求自然数110之和的源程序。#includevoid main()int i=1,sum=0;dosum+=i;i+;while(i=10);printf(“sum=%dn”,sum);,运行结果:sum=55,Chapter22,dowhile语句书上例子及练习,P62 例4-3P6

9、4 练习4-5,Chapter23,dowhile和while语句的区别,相同点:都是实现循环结构的语句区别:while语句先判断表达式的值,为true时,执行循环体;(先判断,后执行)dowhile语句先执行循环体,再判断表达式的值。(先执行,后判断)思考题:在什么情况下,while和dowhile语句的条件表达式和循环体相同,而循环次数却不同?,?,Chapter24,循环结构的嵌套,在程序设计中,一个循环语句的循环体又包含一个完整的循环结构时,构成多重循环,又称为循环语句的嵌套。for()do while();,for()do while();,Chapter25,循环结构的嵌套,例 写

10、出右面图形的源程序。#includevoid main()int i,j;for(i=1;i=3;i+)for(j=1;j=5;j+)printf(“*”);printf(“n”);,*,Chapter26,循环嵌套书上例子及练习,P68 例4-6P70 练习4-8,Chapter27,本章总结,语法形式,语法形式,for语句,while(表达式)语句,do 语句while(表达式);,循环结构,循环结构概述,while语句,dowhile语句,先判断后执行,先执行后判断,就是在给定条件成立的情况下,重复执行一个程序段;当给定条件不成立时,退出循环,再执行循环下面的程序。,语法形式,for(表

11、达式1;表达式2;表达式3)语句,最灵活,循环结构的嵌套,在程序设计中,一个循环语句的循环体又包含一个完整的循环结构时,构成多重循环,Chapter28,循环语句练习,P64 例4-4 判断素数P67 练习4-6、4-74.5节例4-7到4-11练习4-9到4-14,Chapter29,经典例题,求斐波那契数列(P74 例4-10)中国古典算术问题(P75 例4-11)相关问题:种数问题、百鸡问题求1599中能被3整除,且至少有一位数字为5的所有整数。输出9*9口诀表求1!+2!+3!+4!+10!打印图形找出1000以内的所有完数。一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6

12、=123求水仙花数:是指一个n(=3)位数字的数,它等于每个数字的n次幂之和。输入两个正整数m和n,求其最大公约数和最小公倍数。,Chapter30,3.求1599中能被3整除,且至少有一位数字为5的所有整数。,判断a、b、c中是否有5:将1599中三位整数i分解成个位、十位、百位,分别存放在变量a、b、c中。然后判断这三个变量是否含5。将三位整数i(设i=513)分解成个位、十位、百位的方法是:c=i/100;/百位 b=i%100/10;/十位 a=i%100%10;/个位,Chapter31,#includevoid main()int i,a,b,c;for(i=1;i=599;i+)

13、c=i/100;/百位 b=i%100/10;/十位 a=i%100%10;/个位if(i%3=0,Chapter32,4.输出9*9口诀表,#includevoid main()int i,j;for(i=1;i=9;i+)for(j=1;j=i;j+)printf(%d*%d=%2d,i,j,i*j);printf(n);,Chapter33,打印下列图形,#includevoid main()int i,j;for(i=1;i=5;i+)for(j=1;j=i;j+)printf(*);printf(n);,Chapter34,打印下列图形,#includevoid main()int

14、i,j;for(i=1;i=i;j-)printf();for(j=1;j=i;j+)printf(*);printf(n);,Chapter35,打印下列图形,#includevoid main()int i,j;for(i=1;i=i;j-)printf(*);printf(n);,Chapter36,打印下列图形,#includevoid main()int i,j,n;printf(请输入棱形的对角线半长度n:);scanf(%d,Chapter37,打印下列图形,#include#includevoid main()int i,j;for(i=-3;i=3;i+)for(j=0;j=

15、10+abs(i);j+)printf();for(j=1;j=2*(4-abs(i)-1;j+)printf(*);printf(n);,Chapter38,7.找出1000以内的所有完数,#includevoid main()int i,j,s;for(i=1;i=1000;i+)s=0;for(j=1;ji;j+)if(i%j=0)s=s+j;if(s=i)printf(%dn,s);,Chapter39,求100之内的素数,只能被1和本身整除的数判断一个数a是否为素数,只需将它除以2(sqrt(a)取整)即可,如果都不能整除,则a就是素数。,Chapter40,#include#inc

16、ludevoid main()int a,k,i,n;n=0;for(a=2;ak)/若ik,则a为素数printf(%10d,a);/输出素数n=n+1;/对素数进行统计个数printf(n);,求100之内的素数,Chapter41,输入两个正整数m和n,求其最大公约数和最小公倍数。,辗转相除法是利用以下性质来确定两个正整数 a 和 b 的最大公因子的:1.a b,令r为所得余数(0rb)若 r=0,算法结束;b 即为答案。2.互换:置 ab,br,并返回第一步。,Chapter42,求两个自然数m与n的最大公约数采用辗转相除法设最小公倍数(Lease common multiple)为lcm=m*n;最大公约数(Greatest common divisor)为gcd。可采用如下循环实现:(循环前lcm=m*n)r=m%n;mn;nr;直到r=0为止,此时最大公约数为gcd=n,最小公倍数为lcm=lcm/gcd例如:求m=4与n=6的最大公约数:r=4%6=4;m6;n4;r=6%4=2;m4;n2;r=4%2=0;则最大公约数gcd=n=2最小公倍数lcm=4*6/2=12,Chapter43,#include#includevoid main()int m,n,lcm,gcd,r;printf(please input m,n:);scanf(%d%d,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号