资源描述:
《C语言程序设计能力教程(第二版) 教学课件 作者 赵凤芝 第5章 循环结构程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五章循环结构程序设计第一节为什么使用循环如何解决求å==1001nnsum算法1:直接写出算式sum=1+2+3+4+5+…+100算法2:考虑到1+2+3+…+100可以改写为:(((1+2)+3)+…+100),则有S1:p1=0+1S2:p2=p1+2S3:p3=p2+3…S99:p99=p98+99S100:p100=p99+100,结果在p100里。算法3:考虑用变量i存放加数,变量p存放上一步的和。那么每一步都可以写成:p+i,然后让p+i的和存入p,即每步都是p=p+i。S0:p=0,i=1S1:p=p+i,i=i+1S2:p=p+i,i=i+1
2、S3:p=p+i,i=i+1…S100:p=p+i,i=i+1如何解决求å==1001nnsum算法4:在上面的算法基础上采用循环功能实现。S0:p=0,i=1(循环初值)S1:p=p+i,i=i+1(循环体)S2:如果i小于或等于100,重复执行步骤S1及S2;否则,算法结束(循环控制)。p中的值就是1+2+…+100的值。如何解决求å==1001nnsumå==1001nnsum求解问题的N-S图打印p的值当i≤100p=p+ii=i+1p=0,i=1while语句1.形式:while(表达式)语句2.作用:实现“当型”循环,当条件满足时,执行语句3.特点:
3、先判断表达式,后执行语句条件表达式循环体语句真假第二节while语句与dowhile语句题目分析:sum=1+2+3+……+100变量设定:sum存放计算的中间结果和最后结果,i存放被加数;算法分析:1.开始:sum=0,i=12.如果满足条件i<=100,则执行3,否则转5;3.反复累加,迭代式子:sum=sum+i;被加数i的变化规律:i=i+1;4.转2继续;5.结束循环,输出结果。例5.1用while语句求#includemain(){inti,sum;sum=0;i=1;while(i<=100){sum=sum+i;i=i+1;}p
4、rintf(“sum=%d",sum);}循环初值循环条件循环体{累加迭代式子}例5.1用while语句求2.作用:实现“直到型”循环3.特点:先执行语句,后判断条件,直到条件不满足为止。do—while语句1.形式:do语句while(表达式);说明:1、2、do-while语句有两个保留字,do和while必须成对出现do语句在执行循环体后才检查表达式,所以循环体至少执行一次。循环体语句条件表达式循环体语句条件表达式do_while语句的图形表达真假main(){inti,sum=0;i=1;do{sum=sum+i;i++;}while(i<=100)
5、;printf(“sum=%d”,sum);}例5.2用do_while语句实现1+2+3+···+100两种循环语句形式的比较用while语句实现main(){inti,sum=0;i=1;while(i<=100){sum=sum+i;i++;}printf("sum=%d",sum);}运行结果:sum=5050用do-while语句实现main(){inti,sum=0;i=1;do{sum=sum+i;i++;}while(i<=100);printf("sum=%d",sum);}运行结果:sum=5050for(表达式1;表达式2;表达式3)循环体
6、;表达式1;while(表达式2){循环体;表达式3;}等价形式第三节for语句实现一般形式for循环执行过程如下:1)计算表达式1;2)计算表达式2,若其值为非0(循环条件成立),则转3)执行循环体;若其值为0(循环条件不成立),则转5)结束循环;3)执行循环体;4)计算表达式3,然后转2);5)结束循环,执行for循环之后的语句。【例5.3】求正整数n的阶乘n!,其中n由用户输入。fact=1.0输入变量n的值i=1i<=nfact=fact*ii++输出fact的值程序如下:main(){floatfact=1.0;inti,n;scanf("%d",&n
7、);for(i=1;i<=n;i++)fact=fact*i;printf("fac=%f",fact);}main(){floatr,s;inti;floatPi=3.14159;for(i=0,r=0.5;i<6;i++,r++){s=Pi*r*r;printf("r=%4.1f,s=%f",r,s);}}运行结果:r=0.5,s=0.785398r=1.5,s=7.068578r=2.5,s=19.634937r=3.5,s=38.484578r=4.5,s=63.617199r=5.5,s=95.033104【例5.4】写一个程序,计算半径分别为0.
8、5mm,1.5mm,2.