3(循环结构).ppt
《3(循环结构).ppt》由会员分享,可在线阅读,更多相关《3(循环结构).ppt(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Lifang 20144.1C程序设计第第4章章 循环结构程序设计循环结构程序设计 顺序结构顺序结构 选择(分支)结构选择(分支)结构 循环结构循环结构一段有限时间内去做一件或一系列有规律的重复性事情一段有限时间内去做一件或一系列有规律的重复性事情循环循环。Lifang 20144.2C程序设计#include#includevoid main()float a,b,c,s,area;printf(请输入三角形的三条边请输入三角形的三条边 a,b,c:);scanf(%f,%f,%f,&a,&b,&c);if(a+bc&a+cb&b+ca)s=1.0/2*(a+b+c);area=sqrt(s
2、*(s-a)*(s-b)*(s-c);printf(a=%.2f b=%.2f c=%.2fn,a,b,c);printf(s=%.2f area=%.2fn,s,area);else printf(此三条边不能构成三角形!此三条边不能构成三角形!n);4.1 4.1 引例引例实现求三角形面积题目的交互反复运行。实现求三角形面积题目的交互反复运行。while(a!=0|b!=0|c!=0)scanf(%f,%f,%f,&a,&b,&c);Lifang 20144.3C程序设计4.1 4.1 引例引例例例4-2 一行打印一行打印60个个*程序代码:程序代码:include void main()
3、intint i;i;i=1;i=1;while(iwhile(i=60)=60)/*/*重复输出重复输出*6060次次循环循环*/printfprintf(“*”););i+i+;/*/*作用同前例中的作用同前例中的scanfscanf,使循环能结束使循环能结束*/printf(printf(“nn”););Lifang 20144.4C程序设计循环结构的组成:循环结构的组成:循环条件和循环体循环条件和循环体表达式表达式语句语句假假真真语句语句表达式表达式真真假假一段有限时间内去做一件或一系列有规律的重复性事情一段有限时间内去做一件或一系列有规律的重复性事情循环循环。Lifang 20144
4、.5C程序设计C C 语言提供了语言提供了whilewhile、do-whiledo-while和和 for for 三种循环语句三种循环语句 while(e)s;while:do s;while(e);do-while:for(e1;e2;e3)s;for:Lifang 20144.6C程序设计例例:4-2 :4-2 计算计算 1+2+3+.+1001+2+3+.+100 。(用(用 while)while)P47P47 设设:n:n为数列项变量和循环控制变量,为数列项变量和循环控制变量,snmsnm为累加和变量为累加和变量 。#includevoid main()int n,sum;n=1
5、;/为循环计数变量赋初值。为循环计数变量赋初值。sum=0;while(n100时时,循环结束。循环结束。sum=sum+n;n+;/n+为使循环结束的语句。为使循环结束的语句。printf(“sum=%d n”,sum);sum=385循循环环体体练习练习4-2:计算:计算12+22+102。Lifang 20144.7C程序设计 1)while1)while语句的循环体中一定要有使循环结束的语句,否语句的循环体中一定要有使循环结束的语句,否则一旦进入循环,循环永不结束,出现则一旦进入循环,循环永不结束,出现“死循环死循环”。编程时应避免出现这些情况。编程时应避免出现这些情况。2)while
6、(1)2)while(1),条件永远为真,条件永远为真“死循环死循环”。3)while3)while语句的作用范围。循环体如果包含一个以上的语语句的作用范围。循环体如果包含一个以上的语句,应该用花括号括起来,否则句,应该用花括号括起来,否则whilewhile循环体的作用范围只到循环体的作用范围只到whilewhile后面的第一个分号处。后面的第一个分号处。4)”4)”;”的问题的问题使用使用whilewhile循环注意:循环注意:P46P46程序循环与否取决于循环条件判断表达式值的真与假,真循环,假不循环。程序循环与否取决于循环条件判断表达式值的真与假,真循环,假不循环。必须树立的概念:必须
7、树立的概念:while(a1);a+;Lifang 20144.8C程序设计采用穷举法求解采用穷举法求解#include void main()int i=300,sum=0;/*设循环控制变量初值为300*/while(i0)sum=sum+x;scanf(“%f”,&x);例例4-6 4-6 依次输入一批正数,并求正数之和,当输入负数或依次输入一批正数,并求正数之和,当输入负数或0 0时时结束结束 (用(用do-while)do-while)P49P49#include void main()float x,sum;sum=0.0;scanf(“%f”,&x);do sum=sum+x;s
8、canf(“%f”,&x);while(x0.0);printf(“sum=%fn”,sum);Lifang 20144.10C程序设计 1 1、do-do-whilewhile循环语句中,循环语句中,while(e)while(e)之后的分号不要忘写。之后的分号不要忘写。2 2、do-do-whilewhile循环语句中循环语句中,不管循环体是否为单一语句,习不管循环体是否为单一语句,习惯上都用花括号把它括起来,并把惯上都用花括号把它括起来,并把while(e)while(e)直接写在直接写在“”的后面,以免把的后面,以免把while(e)while(e)部分误认为一个新的部分误认为一个新的
9、whilewhile循环的循环的开始。开始。注意:注意:Lifang 20144.11C程序设计#include#include void main()float n,s,t,pi;t=1;pi=1;n=1.0;s=1;do n=n+2;s=-s;/*求符号位s,正负号变化*/t=s*1/n;/*求一个数列项的值t*/pi=pi+t;/*累加t*/while(fabs(t)=1e-6);/*fabs(t)绝对值函数*/pi=pi*4;printf(“pi=%fn”,pi);例例4-74-7:利用公式如下公式求利用公式如下公式求的近似值,直到最后一项的绝对值的近似值,直到最后一项的绝对值小于小于
10、1010-6-6为止。为止。P49P49 Lifang 20144.12C程序设计forfor语句是比 while 语句功能更强而且更加灵活的一种循环结构。4.4.for 循环语句循环语句n=0;while(n10)s;n+;while:e1:循环变量赋初值循环变量赋初值e2:循环条件判断循环条件判断e e3 3:改变循环变量值改变循环变量值for(e1;e2;e3)s;for:Lifang 20144.13C程序设计例例:4-2 :4-2 计算计算 1+2+3+.+1001+2+3+.+100 。(用(用for)for)P51P51#includevoid main()int n,sum;s
11、um=0;for(n=1;n100时时,循环结束。循环结束。sum=sum+n;n+;/n+为使循环结束的语句。为使循环结束的语句。printf(“sum=%d n”,sum);循循环环体体Lifang 20144.14C程序设计1.e11.e1、e2e2、e3e3三个表达式均可省略,但其中的分号三个表达式均可省略,但其中的分号“;”;”不能省略。不能省略。此时此时,完全等同于完全等同于 while(1),无终止地执行循环体。,无终止地执行循环体。for(;).s;2.2.只省略表达式只省略表达式e2e2,即即 for(e1;e3)for(e1;e3),省略循环判断的条件,也将无终省略循环判断
12、的条件,也将无终止地执行循环体。止地执行循环体。3.3.如果只有表达式如果只有表达式e2e2,即即 for(;e2;)for(;e2;),则完全等同于则完全等同于 while(e)while(e)语句。语句。n=0;for(;n=10;)sum=sum+n;n+;n=0;while(n2n2时时,F(n)=F(n-1)+F(n-2)F(n)=F(n-1)+F(n-2)即即:n=1,F(1)=1;n=1,F(1)=1;n=2,F(2)=1;n=2,F(2)=1;n=3,F(3)=F(2)+f(1)=2;n=3,F(3)=F(2)+f(1)=2;n=4,F(4)=F(3)+F(2)=3;n=4,F
13、(4)=F(3)+F(2)=3;.n2,F(n)=F(n-1)+F(n-2)n2,F(n)=F(n-1)+F(n-2)。例例4-8 Fibonacci(4-8 Fibonacci(斐波纳契斐波纳契)数列问题:编写程序,打印其前数列问题:编写程序,打印其前2020项项(它是意大利数学家(它是意大利数学家FibonacciFibonacci提出的)。提出的)。P52#include“stdio.h”main()int n,f1=1,f2=1,f3;printf(“%10d%10d”,f1,f2);for(n=3;n=20;n+)f3=f1+f2;printf(“%10d”,f3);f1=f2;f2
14、=f3;迭代问题:迭代问题:用循环来解决数学上的递推数列问题(由递推用循环来解决数学上的递推数列问题(由递推关系和初始条件确定的数列)关系和初始条件确定的数列)迭代的过程。迭代的过程。Lifang 20144.16C程序设计内内层层循循环环外外层层循循环环非法嵌套非法嵌套外外循循环环内内循循环环合法嵌套合法嵌套C C 语言的三种循环语句都可以相互嵌套语言的三种循环语句都可以相互嵌套,并且被嵌入的循环又可以嵌套并且被嵌入的循环又可以嵌套循环,称之为循环,称之为多重循环多重循环。循环嵌套的原则循环嵌套的原则:被嵌套的一定是一个完整的循环结构,即两个循:被嵌套的一定是一个完整的循环结构,即两个循环结
15、构不能相互交叉。环结构不能相互交叉。4.5 4.5 循环嵌套(多重循环)循环嵌套(多重循环)Lifang 20144.17C程序设计循环嵌套的执行过程:循环嵌套的执行过程:例:打印(例:打印(1 1,1 1)(9 9,9 9)所构成的矩形区域中的每个)所构成的矩形区域中的每个整数坐标点对应的坐标。整数坐标点对应的坐标。注意:注意:注意:注意:嵌套循环的循环控制变量不可同名,嵌套循环的循环控制变量不可同名,嵌套循环的循环控制变量不可同名,嵌套循环的循环控制变量不可同名,并列循环的循环控制变量可以同名;并列循环的循环控制变量可以同名;并列循环的循环控制变量可以同名;并列循环的循环控制变量可以同名;
16、#includemain()int i,j;for(i=1;i=9;i+)for(j=1;j=9;j+)printf(%d,%d),i,j);printf(n);练习:99乘法表(矩形、三角阵)Lifang 20144.18C程序设计例例4-11:4-11:百钱买百鸡问题百钱买百鸡问题:公鸡公鸡1 1只只5 5元,母鸡元,母鸡1 1只只3 3元,小鸡元,小鸡3 3只只1 1元。元。(穷举法穷举法)P55P55main()/*法二法二*/int x,y,z;for(x=0;x=20;x+)for(y=0;y=33;y+)z=100-x-y;if(15*x+9*y+z=300)printf(%d%
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环 结构
限制150内