资源描述:
《第4章_程序的控制结构(4[1].4_4.5 循环)ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章程序的控制结构4.4循环结构4.4.1应用场合4.4.2循环结构的流程图4.4.3循环语句4.5流程的转移控制4.4.1应用场合问题:(1)计算1+2+3+…+n=?(2)计算n!(即:1×2×3×…×n)=?(3)计算1!+2!+3!+…+n!=?(4)对于前面我们设计的一个简单的计算器程序。每执行一次程序,用户只能选择一种运算符做一次运算,若要再做其他的运算,必须重新运行一次程序。能否在不退出程序运行的前提下,让用户可以做多次运算,直到用户想停止时按一个键程序才结束?以上的问题都有一个共同点,即含有重复处理的内容
2、,即算法相同而处理的数据不同。该类问题都可以用本节将要介绍的循环语句实现。循环结构有两种类型:(1)当型循环结构(2)直到型循环结构4.4.2循环结构的流程图表示A真假假条件P条件PA假真当循环:先判断后执行;直到循环:先执行后判断,至少执行一次4.4.3循环语句循环语句包括:while语句do-while语句for语句(1)当型循环while语句其一般形式为:while(表达式){循环体语句;}执行:当表达式值为真(非零)时,重复执行循环体语句,当表达式值为假(0)时结束循环的执行。0表达式语句非0注意:循环次数=(终值
3、-初值)/步长+1例1:计算1+2+3+…+n=?(假设n的值为100)#includeintmain(void){inti=1,n=100,sum=0;while(i<=n){sum=sum+i;i++;}printf(“%d”,sum);return0;}假i<=nsum=sum+ii=i+1真i=1n=100sum=0输出sum例2:某企业2010产值为3500万,假设以后每年按11.45%递增,问该企业的产值在哪一年能达到1亿元,计算并输出年份与产值。#includeintmai
4、n(void){intyear;doublep0,p1,c;printf(“Pleaseinputyear,p0,cdata:”);scanf(“%d,%lf,%lf”,&year,&p0,&c);p1=p0;while(p1<10000){year++;p1*=1+c;}printf(“Year=%dp=%.2f”,year,p1);return0;}例3:求任意两个整数的最大公约数和最小公倍数。#includeintmain(void){intm,n,i,zdgys,z
5、xgbs;printf("pleaseinputtwointegernumbers:");scanf("%d%d",&m,&n);i=1;while(i<=m&&i<=n){if(m%i==0&&n%i==0){zdgys=i;}i++;}zxgbs=m*n/zdgys;printf("thegreatestcommondivisoris%d",zdgys);printf("theleastcommonmultipleis%d",zxgbs);return0;}#include6、h>intmain(void){intm,n,u,v,temp,zxgbs;printf("pleaseinputtwointegernumbers:");scanf("%d%d",&m,&n);u=m;v=n;while(v!=0){temp=u%v;u=v;v=temp;}zxgbs=m*n/u;printf("thegreatestcommondivisoris%d",u);printf("theleastcommonmultipleis%d",zxgbs);return0;}例3:用辗转相除法求最大公约数(
7、供课外阅读)(2)直到循环do-while语句其一般形式为:do{循环体语句;}while(表达式);执行流程:先执行一次循环体语句,然后判断表达式,当表达式为真(非零)时,继续重复执行循环体语句,直到表达式的值为假(0)时结束循环的执行。循环体语句表达式非00do-while语句应用举例例4:计算n!=1×2×3×…×n=?(假设n的值为10)#includeintmain(void){inti=1,n=10;doublefac=1;do{fac=fac*i;i++;}while(i<=n);print
8、f("10!=%.0f",fac);return0;}#includeintmain(void){intx,zhengshu=0,fushu=0,count=0;printf("Input10integers.");do{scanf("%d",&x);count++;if(x>