ImageVerifierCode 换一换
格式:PPT , 页数:18 ,大小:243.50KB ,
资源ID:2646140      下载积分:15 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2646140.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(循环嵌套.ppt)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

循环嵌套.ppt

1、v一个循环体内又包含另外一个循环结构,称循环嵌套。v三种循环可互相嵌套(1)while()while().(2)do do while();.while();(3)while()do while();.(4)for(;)do while();while().内循环外循环内循环v内循环不能相互交叉禁止:l1.从外层跳入内层l2.跳入同层的另一循环l3.向上跳转5.4 循环的嵌套 按以下格式打印九九表:按以下格式打印九九表:1*1=1,1*2=2,1*3=3,1*9=92*1=2,2*2=4,2*3=6,2*9=18 9*1=9,9*2=18,9*3=27,9*9=81程序分析:输出第一行:i=1

2、 to 9输出1*i,输出第二行:i=1 to 9输出2*i,int i;for(i=1;i=9;i+)printf(“1*%d=%d,”,i,1*i);for(j=1;j=9;j+)printf(“2*%d=%d,”,j,1*i);观察一行,每式的第一项为常数,第二项为变量观察九行,每式的第一项也是变量,但是,只在换行时改变一次。设:i=1,2,39;为第一项变量设:j=1,2,39;为第二项变量,修改程序:i=1,to 9j=1,to 9j%9=0tf换行输出 i*jmain()int i,j;For(i=1;i10;i+)For(j=1;j10;j+)If(j%9=0)Printf(“n

3、”);else printf(“%d*%d=%d”,i,j,i*j);ij例1:例2:36块砖,块砖,36人搬,男搬人搬,男搬4,女搬,女搬3,两个小孩抬一块,要求一次搬,两个小孩抬一块,要求一次搬完,问:需要男、女、小孩各多完,问:需要男、女、小孩各多少人?少人?分析:分析:男人(男人(m)可能是)可能是18人,人,女人(女人(w)可能是可能是111人,小孩人,小孩(c)可能是可能是254人,人,用循环语句全部列举所有的可用循环语句全部列举所有的可能,再用下列方程进行筛选,能,再用下列方程进行筛选,符合条件的即为一组解符合条件的即为一组解m+w+c=36 (1)4*m+3*w+c*0.5=3

4、6(2)m=1 to 8w=1 to 11C=1 to 54(1)=(2)tf输出m,w,cMain()int m,w,c;for(m=1;m=8;m+)for(w=1;w=11;w+)for(c=2;c=54;c+)if(m+w+c)=(4*m+3*w+c*0.5)printf(“m=%d,w=%d,c=%d);辅助控制语句break语句功能:在循环语句和switch语句中,终止并跳出循环体或开关体说明:break只能终止并跳出最近一层的结构break不能用于循环语句和switch语句之外的任何其它语句之中exprbreak;假(0)真(非0)whiledobreak;.expr假(0)真(

5、非0)whileexpr2break;.假(0)真(非0)forexpr1expr3switchexpr语句组1break;语句组2break;语句组nbreak;语句组break;.const 1const 2const ndefaultcase 例 break举例:输出圆面积,面积大于100时停止#define PI 3.14159main()int r;float area;for(r=1;r100)break;printf(r=%d,area=%.2fn,r,area);例 break举例:小写字母转换成大写字母,直至输入非字母字符#include main()int i,j;char

6、 c;while(1)c=getchar();if(c=a&c=z)putchar(c-a+A);else break;continue语句v功能:结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断v仅用于循环语句中exprcontinue;假(0)真(非0)while真(非0)docontinue;.expr假(0)whileexpr2continue;.假(0)真(非0)forexpr1expr3例 求输入的十个整数中正数的个数及其平均值/*ch5_12.c*/#include main()int i,num=0,a;float sum=0;for(i=0;i10;i

7、+)scanf(%d,&a);if(a=0)continue;num+;sum+=a;printf(%d plus integers sum:%6.0fn,num,sum);printf(Mean value:%6.2fn,sum/num);程序举例t=1,pi=0,n=1.0,s=1当|t|1e-6pi=pi+tn=n+2s=-st=s/npi=pi*4输出pi分子:1,-1,1,-1分母:1,3,5,7,.例 求Fibonacci数列:1,1,2,3,5,8,的前40个数f1=1,f2=1for i=1 to 20输出f1,f2f1=f1+f2f2=f2+f1153423315971094

8、6750255142293524578241578171855377258417711121393832040570288739088169213896104181286571964181346269922746563245986321144987676546368317811217830914930352102334155例 判断m是否素数读入mk=mi=2当ikm被i整除真假用break结束循环i=i+1ik+1真假输出:m”是素数”输出:m”不是素数”例 译密码例如 Hello,world!译成密码:Lipps,asvph!3.4 循环型程序设计划 3.4.1 穷举和迭代(一)穷举一)穷

9、举意义:列出问题的全部可能解,每列出一组解意义:列出问题的全部可能解,每列出一组解,测试一组,将符合测试条件测试一组,将符合测试条件的解保存下来或打印出来。的解保存下来或打印出来。例例3.10 36块砖,块砖,36人搬,男搬人搬,男搬4,女搬,女搬3,两个小孩抬一块,要求一次,两个小孩抬一块,要求一次搬完,问:需要男、女、小孩各多少人?搬完,问:需要男、女、小孩各多少人?分析:男人数分析:男人数 men可能是可能是09人,女人数人,女人数women可能是可能是012人,小孩人数人,小孩人数chilen可能是可能是052人,将所有的解用循环语句全部列举出来的同时,再一个人,将所有的解用循环语句全

10、部列举出来的同时,再一个一个进行筛选,将符合筛选条件(一个进行筛选,将符合筛选条件(men+women+children=36&4*men+3*men+children/2.0=36.0)的结果打印出来,程序源代码如的结果打印出来,程序源代码如 (310.c)所示:所示:注意:程序中没有列出注意:程序中没有列出10*13*19这么多种可能的解法,而只列出了这么多种可能的解法,而只列出了10*13可可能的解法,因为能的解法,因为men和和women的的个数确定之后,个数确定之后,childen的个数也确定了。的个数也确定了。一般的:采用穷举法时循环语句体中常常用一般的:采用穷举法时循环语句体中常

11、常用if 结构从全部可能的解中筛选出结构从全部可能的解中筛选出正确的解来。正确的解来。返回返回穷举应用程序举例main()int men=0,women,children;while(men8)women=0;while(women=11)children=36-women-men;if(4.0*men+3.0*women+children/2=36&!(children%2)printf(n men is%d,men);printf(twomen is%d,women);printf(tchildren is%dn,children);women+;men+;本次计算的结果是以上一次或上几次

12、计算的结果为条件,而每次进行本次计算的结果是以上一次或上几次计算的结果为条件,而每次进行计算的步骤和公式都是一样的。计算的步骤和公式都是一样的。例:例:3.11 若今年的人口总数为若今年的人口总数为n亿,今后每年按亿,今后每年按2%的增长率增加,的增长率增加,问十年后总人口数应是多少?问十年后总人口数应是多少?分析:人口的基数是:分析:人口的基数是:n=12亿。亿。过一年后的人口总数是:过一年后的人口总数是:nn*(1+0.2)。过二年后的人口总数是:过二年后的人口总数是:n=n*(1+0.2)。过十年后的人口总数还是按过十年后的人口总数还是按n=n*(1+0.2)这个公式来计算。这个公式来计

13、算。综上:计算这个问题就是把综上:计算这个问题就是把n*(1+0.2)反复计算十次,即总是把上一次计算出反复计算十次,即总是把上一次计算出来的人口总数来的人口总数n的的1.02倍作为本次计算的人口总数倍作为本次计算的人口总数n。这与初等数学中计数数这与初等数学中计数数列问题的递推方法是基本相同的,只是书写方式不同而已。源代码见(列问题的递推方法是基本相同的,只是书写方式不同而已。源代码见(311.c)例例3.12 有一个数列为:,有一个数列为:,这这个数列是有名的个数列是有名的Fibnacci数列,问这个数列的第数列,问这个数列的第n-项是多少。项是多少。分析:这个数列的特点是:从第三项始,总

14、是等于前两项之和。分析:这个数列的特点是:从第三项始,总是等于前两项之和。迭代:从第三项开始:设前两项为从第三项开始:设前两项为fib1,fib2,本项为本项为fib,则有通式:则有通式:fib=fib1+fib2;按循环的特点(每次计算按循环的特点(每次计算fibr的公式应一样)故对于本题来说,的公式应一样)故对于本题来说,应用应用c代码写出代码写出 计算下次的计算下次的fib时与本次计算时与本次计算fib时的时的fib1和和fib2的的变化规律。变化规律。本次fib1 fib2fib下次fib1 fib2fibfib=fib1+fib2;/*计算本次的计算本次的fib*/fib1=fib2;/*这两行是在为计算下一项这两行是在为计算下一项fib作必要的准备作必要的准备*/fib2=fib;返回返回

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1