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

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

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

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

3、为循环增量表达式,通常为赋值表达式,增量大小通常称为步长; 语句称为循环体,可以是单个语句,也可以是多个语句。,for(循环初始化;循环条件;循环增量),Page 9,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;,Page 10,for语句,执行顺序 (1)计算表达式1的值; (2)计算表达式2的值,。

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

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

6、e,则执行循环体(语句) 若表达式的值为false,则执行while语句后的语句 流程图 注意:在循环体中,一般应该包含改变循环条件表达式的语句。,表达式,语 句,false,true,Page 15,while语句(当型循环),例 求自然数110之和。 分析:本题需要用累加算法,累加过程是一个循环过程,可以用while语句实现。 流程图,Page 16,while语句(当型循环),例 求自然数110之和的源程序。 #include void main() int i=1,sum=0; while(i=10) sum+=i; i+; printf(“sum=%dn”,sum); ,运行结果: 。

7、sum=55,Page 17,while语句书上例子及练习,P58 例4-1 P61 例4-2 P62 练习4-1、4-2、4-3、4-4,Page 18,dowhile语句(直到型循环),语法形式: do 语句 while(表达式); 说明: 表达式称为循环控制条件表达式,一般为关系表达式或逻辑表达式,必须用一对圆括号“()”括起来。 语句称为循环体,可以是单个语句,也可以是多个语句。 dowhile语句以分号结束。,循环控制条件,循环体,以分号结束,Page 19,dowhile语句(直到型循环),执行顺序 先执行语句,后判断表达式的值 若表达式的值为true,则继续执行循环体(语句) 若。

8、表达式的值为false,则结束循环,执行dowhile语句后的语句 流程图 注意:在循环体中,一般应该包含改变条件表达式的语句。,语 句,false,true,表达式,Page 20,dowhile语句(直到型循环),例 用dowhile语句求自然数110之和。 分析:本题需要用累加算法,累加过程是一个循环过程,可以用dowhile语句实现。 流程图,Page 21,dowhile语句(直到型循环),例 求自然数110之和的源程序。 #include void main() int i=1,sum=0; do sum+=i; i+; while(i=10); printf(“sum=%dn”,。

9、sum); ,运行结果: sum=55,Page 22,dowhile语句书上例子及练习,P62 例4-3 P64 练习4-5,Page 23,dowhile和while语句的区别,相同点:都是实现循环结构的语句 区别: while语句先判断表达式的值,为true时,执行循环体;(先判断,后执行) dowhile语句先执行循环体,再判断表达式的值。(先执行,后判断) 思考题:在什么情况下,while和dowhile语句的条件表达式和循环体相同,而循环次数却不同?,?,Page 24,循环结构的嵌套,在程序设计中,一个循环语句的循环体又包含一个完整的循环结构时,构成多重循环,又称为循环语句的嵌套。

10、。 for() do while(); ,for() do while();,Page 25,循环结构的嵌套,例 写出右面图形的源程序。 #include void main() int i,j; for(i=1;i=3;i+) for(j=1;j=5;j+) printf(“*”); printf(“n”); ,* * *,Page 26,循环嵌套书上例子及练习,P68 例4-6 P70 练习4-8,Page 27,本章总结,语法形式,语法形式,for语句,while(表达式) 语句,do 语句 while(表达式);,循环结构,循环结构概述,while语句,dowhile语句,先判断后执行。

11、,先执行后判断,就是在给定条件成立的情况下,重复执行一个程序段;当给定条件不成立时,退出循环,再执行循环下面的程序。,语法形式,for(表达式1;表达式2;表达式3) 语句,最灵活,循环结构的嵌套,在程序设计中,一个循环语句的循环体又包含一个完整的循环结构时,构成多重循环,Page 28,循环语句练习,P64 例4-4 判断素数 P67 练习4-6、4-7 4.5节例4-7到4-11练习4-9到4-14,Page 29,经典例题,求斐波那契数列(P74 例4-10) 中国古典算术问题(P75 例4-11) 相关问题:种数问题、百鸡问题 求1599中能被3整除,且至少有一位数字为5的所有整数。 。

12、输出9*9口诀表 求1!+2!+3!+4!+10! 打印图形 找出1000以内的所有完数。 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=123 求水仙花数:是指一个n(=3)位数字的数,它等于每个数字的n次幂之和。 输入两个正整数m和n,求其最大公约数和最小公倍数。,Page 30,3.求1599中能被3整除,且至少有一位数字为5的所有整数。,判断a、b、c中是否有5:将1599中三位整数i分解成个位、十位、百位,分别存放在变量a、b、c中。然后判断这三个变量是否含5。将三位整数i (设i=513)分解成个位、十位、百位的方法是: c=i/100; /百位 b=i%100/1。

13、0; /十位 a=i%100%10; /个位,Page 31,#include void 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 ,Page 32,4.输出9*9口诀表,#include void 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); ,Page 33,打印下列图形,#include void main() int i。

14、,j; for(i=1;i=5;i+) for(j=1;j=i;j+) printf(*); printf(n); ,Page 34,打印下列图形,#include void main() int i,j; for(i=1;i=i;j-) printf( ); for(j=1;j=i;j+) printf(*); printf(n); ,Page 35,打印下列图形,#include void main() int i,j; for(i=1;i=i;j-) printf(*); printf(n); ,Page 36,打印下列图形,#include void main() int i,j,n;。

15、 printf(请输入棱形的对角线半长度n:); scanf(%d, ,Page 37,打印下列图形,#include #include void main() int i,j; for(i=-3;i=3;i+) for(j=0;j=10+abs(i);j+) printf( ); for(j=1;j=2*(4-abs(i)-1;j+) printf(*); printf(n); ,Page 38,7.找出1000以内的所有完数,#include void main() int i,j,s; for(i=1;i=1000;i+) s=0; for(j=1;ji;j+) if(i%j=0)s=s。

16、+j; if(s=i)printf(%dn,s); ,Page 39,求100之内的素数,只能被1和本身整除的数 判断一个数a是否为素数,只需将它除以2(sqrt(a)取整)即可,如果都不能整除,则a就是素数。,Page 40,#include #include void main() int a,k,i,n; n=0; for(a=2;ak)/若ik,则a为素数 printf(%10d,a); /输出素数 n=n+1; /对素数进行统计个数 printf(n); ,求100之内的素数,Page 41,输入两个正整数m和n,求其最大公约数和最小公倍数。,辗转相除法是利用以下性质来确定两个正整数。

17、 a 和 b 的最大公因子的: 1. a b,令r为所得余数(0rb) 若 r = 0,算法结束;b 即为答案。 2. 互换:置 ab,br,并返回第一步。,Page 42,求两个自然数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,Page 43,#include #include void main() int m,n,lcm,gcd,r; printf(please input m,n:); scanf(%d%d,。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值