资源描述:
《C语言程序设计(5循环结构)ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言程序设计第五章循环结构4种循环语句whilefordo-while循环是指使用一定条件对同一个程序段重复执行若干次。循环结构又称重复结构,可以完成重复性、规律性的操作。gotogoto语句一般格式:goto语句标号由if……goto构成循环例4-1:main(){intx=0,y=0;star:if(x<=3){y=x+1;x=x+1;gotostar;}printf(“%d”,y);}分析输出结果。一般形式:while(<表达式>)<语句>执行流程:while语句循环体:被重复执行的部分表达式循环体假(0)真(非0)while特点:先判断表达式,后执行循环体说明:循环体有可能一次也不执
2、行循环体可为任意类型语句下列情况,可退出while循环条件表达式不成立(为零)循环体内遇break,return,gotowhile语句特点和说明while(<表达式>)<语句>例4-2:main(){intcount=1;while(count<5){printf(”goodmorning!”);count++;}}goodmorning!goodmorning!goodmorning!goodmorning!#includemain(){intn=9;while(n>6){n--;printf(“%d”,n);}}876main(){intn=9;while(n>6)
3、n--;printf(“%d”,n);}6例4-3:用while循环求sum=1+2+3+……+100#includemain(){intsum=0;inti=1;while(i<=100){sum+=i;i++;}printf(“sum=%d",sum);}循环初值循环终值循环变量增值循环条件循环体如何求sum=1*2*3*……*100?【例5-13】猴子吃桃问题。猴子第一天摘下若干桃子,当即吃掉一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃掉前一天剩下的一半零一个。到第10天早上再想吃时,就只剩一个桃子了。问第一天共摘了
4、多少个桃子?迭代法设第n天为xn个,第n+1天为xn+1则:xn+1=xn/2-1可得递推公式:xn=(xn+1+1)*21≤n≤9x10=1n=10即:x10=1x9=(x10+1)*2=4x8=(x9+1)*2=10……x1=(x2+1)*2=1534算法分析:倒推#includemain(){intp2=1,p1;int n=9;while(n>0){p1=2*(p2+1);p2=p1;n--;}printf(“thetotalis%d”,p1);}#includemain(){intn=0;longt=1;printf(“nn!”);whil
5、e(n<8){n++;t*=n;printf("%d%ld",n,t);}}运行结果:nn!1122364245120672075040840320求n!(n=1~8)do-while语句一般形式:do<语句>while(<表达式>);执行流程:do循环体expr假(0)真(非0)while“;”不能少expr循环体假(0)真(非0)循环体while循环特点:先执行循环体,后判断表达式说明:至少执行一次循环体do~while可转化成while结构do~while语句特点和说明do<语句>while(<表达式>);main(){intx=3;do{printf(“%d”,x-=2);}whi
6、le(x>=0);}1-1x=x-2;printf(“%d”,x);求1+2+3+……100#includemain(){intsum=0,i;i=1;do{sum=sum+i;i++;}while(i<=100);printf(”sum=%d”,sum);}#includemain(){intsum=0;inti=1;while(i<=100){sum=sum+i;i++;}printf(“sum=%d",sum);}main(){inti=1,s=0;while(i<1){s=s+i;i=i+1;}printf("s=%d",s);
7、}s=0main(){inti=1,s=0;do{s=s+i;i=i+1;}while(i<1);printf("s=%d",s);}s=1do-while与while的区别一般形式:for([表达1];[表达式2];[表达式3])<语句>执行流程:expr2循环体假(0)真(非0)forexpr1expr3for语句一般应用形式:for(初始化表达式;条件表达式;修正表达式)<语