C语言第4章(循环结构).ppt

上传人:tia****nde 文档编号:12706218 上传时间:2020-05-14 格式:PPT 页数:36 大小:324.50KB
返回 下载 相关 举报
C语言第4章(循环结构).ppt_第1页
第1页 / 共36页
C语言第4章(循环结构).ppt_第2页
第2页 / 共36页
C语言第4章(循环结构).ppt_第3页
第3页 / 共36页
点击查看更多>>
资源描述
第4章循环结构程序设计,顺序结构选择(分支)结构循环结构,一段有限时间内去做一件或一系列有规律的重复性事情循环。,#include#includevoidmain()floata,b,c,s,area;printf(请输入三角形的三条边a,b,c:);scanf(%f,%f,%f,4.1引例,实现求三角形面积题目的交互反复运行。,while(a!=0|b!=0|c!=0),scanf(%f,%f,%f,4.1引例,例4-2一行打印60个*,程序代码:includevoidmain()inti;i=1;while(i1);a+;,采用穷举法求解#includevoidmain()inti=300,sum=0;/*设循环控制变量初值为300*/while(i=1e-6);/*fabs(t)绝对值函数*/pi=pi*4;printf(“pi=%fn”,pi);,例4-7:利用公式如下公式求的近似值,直到最后一项的绝对值小于10-6为止。P49,for语句是比while语句功能更强而且更加灵活的一种循环结构。,4.4.for循环语句,e1:循环变量赋初值e2:循环条件判断e3:改变循环变量值,例:4-2计算1+2+3+.+100。(用for)P51,#includevoidmain()intn,sum;sum=0;for(n=1;n100时,循环结束。sum=sum+n;n+;/n+为使循环结束的语句。printf(“sum=%dn”,sum);,1.e1、e2、e3三个表达式均可省略,但其中的分号“;”不能省略。此时,完全等同于while(1),无终止地执行循环体。,for(;).s;,2.只省略表达式e2,即for(e1;e3),省略循环判断的条件,也将无终止地执行循环体。3.如果只有表达式e2,即for(;e2;),则完全等同于while(e)语句。,注意,规则是:当n=1或n=2时,F(n)=1;当n2时,F(n)=F(n-1)+F(n-2)即:n=1,F(1)=1;n=2,F(2)=1;n=3,F(3)=F(2)+f(1)=2;n=4,F(4)=F(3)+F(2)=3;.n2,F(n)=F(n-1)+F(n-2)。,例4-8Fibonacci(斐波纳契)数列问题:编写程序,打印其前20项,(它是意大利数学家Fibonacci提出的)。P52,#include“stdio.h”main()intn,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=f3;,迭代问题:用循环来解决数学上的递推数列问题(由递推关系和初始条件确定的数列)迭代的过程。,C语言的三种循环语句都可以相互嵌套,并且被嵌入的循环又可以嵌套循环,称之为多重循环。循环嵌套的原则:被嵌套的一定是一个完整的循环结构,即两个循环结构不能相互交叉。,4.5循环嵌套(多重循环),循环嵌套的执行过程:,例:打印(1,1)(9,9)所构成的矩形区域中的每个整数坐标点对应的坐标。,注意:嵌套循环的循环控制变量不可同名,并列循环的循环控制变量可以同名;,#includemain()inti,j;for(i=1;i=9;i+)for(j=1;j=9;j+)printf(%d,%d),i,j);printf(n);,练习:99乘法表(矩形、三角阵),例4-11:百钱买百鸡问题:公鸡1只5元,母鸡1只3元,小鸡3只1元。(穷举法)P55,main()/*法二*/intx,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%d%dn,x,y,z);,main()/*法一*/intx,y,z;for(x=0;x=100;x+)for(y=0;y=100;y+)for(z=0;z=100;z+)if(x+y+z=100,改错:x+y+z=100intn,m;for(n=1;n=20;n+)t=1;for(m=1;m=n;m+)t*=m;s+=t;printf(“1!+2!+3!+.+n!=%en”,s);,例:用for循环语句计算1!+2!+3!+.+n!。,n循环控制变量;s为累加和变量;t为阶乘变量。,1!+2!+3!+.+n!=2.56133e+018,main()floatt=1,s=0;intn;for(n=1;n=20;n+)t*=n;s+=t;printf(“1!+2!+3!+.+n!=%en”,s);,例4-9:用for循环语句计算1!+2!+3!+.+n!。P53,n循环控制变量;s为累加和变量;t为阶乘变量。,for(s=0,t=1,n=1;n=20;n+)t*=n;s+=t;,C语言的三种循环,都是根据循环判断表达式为0时来控制循环结束,这种结束是正规结束。在实际应用中,有时还要求在循环的中途退出循环,这是一种非正规的循环退出可以用break、continue语句实现。,4.6break、continue语句,功能:退出当前循环或当前switch结构,不能用于其他语句。作用:跳出当前的循环或switch语句转向它们之后的语句执行。,1)break语句,注意:若break语句处于多重循环中,break语句只是跳出当前层循环。,例4-12韩信点兵:韩信有一队兵,他想知道有多少人,便让士兵排队报数:按从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再按从1至11报数,最末一个士兵报的数为10。下面程序的主要功能是计算韩信至少有多少兵。P56,程序代码:#includevoidmain()intx;for(x=1;x+)if(x%5=1,例4-13:编一个程序,判断一个数m是否为素数。P57,分析:素数就是只能被1和它们自身整除的数。判断一个数是不是素数,是用此数之前的所有数来试除,看其是否能被整除,如果都不能被整除,则认为该数是素数,否则不是素数。,#includemain()inti,k;for(i=2;ik;i+)if(k%i=0)break;if(i=k)printf(“%d”,k);,例:编程,求出2和100之间的素数。,#includemain()inti,k;for(k=3;k=100;k+)for(i=2;i(6,3)=(3,0)=3,#includevoidmain()intx,y,r;scanf(“%d%d”,由此,可继续求出最小公倍数:x*y/最大公约数,程序代码:,例4-16牛顿迭代法(切线法),用曲线弧一端的切线来代替曲线弧,从而求出方程实根的近似值的方法。,牛顿迭代公式:f(x0)=(0-f(x0)/(x1-x0)x1=x0-f(x0)/f(x0),例4-16用牛顿迭代法求下面方程在1.5附近的根。2x3-4x2+3x-6=0。精度为1e-5,#include#includemain()floatx,x0,f,f1;x=1.5;dox0=x;f=(2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;x=x0-f/f1;printf(“%fn”,x);/输出中间结果while(fabs(x-x0)1e-5);printf(Therootofequationis%5.2fn,x);,分析:Ai=(f(xi)+f(xi+h)/2*hAREA=,例4-18用等距梯形法计算定积分,f(x)=x2+12x+4,x的取值范围是1,4。,程序代码:#includevoidmain()floatx,a,b,h,f1,f2,area;inti,n;scanf(“%f%f%d”,例4-19生成两个(09)的随机数,完成两个随机数的算术四则运算,#include#include#includevoidmain()charop;inta=1,b=2,c;srand(time(0);printf(本程序提供四种运算功能:+,-,*,/n);printf(请选择你要进行的运算:);doop=getchar();/scanf()一样有这个问题getchar();a=rand()%10;b=rand()%10;switch(op)case+:c=a+b;printf(%d%c%d=%dn,a,op,b,c);break;case-:c=a-b;printf(%d%c%d=%dn,a,op,b,c);break;case*:c=a*b;printf(%d%c%d=%dn,a,op,b,c);break;case/:c=a/b;printf(%d%c%d=%dn,a,op,b,c);break;default:printf(wrongcharactern);break;while(op!=0);,小结,C语言提供了while、do-while、for三种语句来实现循环结构。for语句功能最强,使用最多。for、while语句是先判断后执行循环体,do-while则是执行一次循环体后才判断。,break语句用于结束其所在的switch分支结构或while、do-while、for循环结构;continue语句用于结束本次循环。,goto语句用于控制程序转向指定点执行,在结构化程序设计中要求有节制地使用goto语句。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


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

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


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