版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,知识回顾,常见数据类型:int ,float,char 等; 常见的运算符:赋值、算术、关系、逻辑,逗号等; 常见表达式:赋值、算术、关系、逻辑,逗号等; 三种基本结构:顺序、选择、循环; 三种基本的选择语句; 三种基本的循环语句;,2,本讲知识要点,嵌套循环; 理解掌握嵌套循环的执行顺序; 基本算法策略(穷举、迭代与递推); 较复杂、综合的程序设计;,3,一、循环的嵌套,循环的嵌套:一个循环体内又包含另一个完整的循环结构。 3种循环(while、dowhile、for循环)可以相互嵌套。可参见课本P121,4,例1:编程输出九九乘法口诀表,输出形式如下: 1*1=1 1*2=2 2*2=
2、4 1*3=3 2*3=6 3*3=9 1*9=9 2*9=18 3*9=279*9=81,分析:对于第i行,观察有多少列?,第i行有i列!,共有9行,所以for(i=1;i=9;i+) 对于第i行,共有i列,所以for(j=1;j=i;j+),5,#include main() int i,j; for(i=1;i=9;i+) /共9行 for(j=1;j=i;j+) /第i行共有i列 printf(%d*%d=%d ,j,i,i*j); printf(“n”); /每一行各列输出完后,要换行 ,外循环循环体,内循环循环体,/参考源程序,6,例:素数的判断问题。编程输出100200之间所有的
3、素数。,先阅读P126 例6.8 分析: 素数:除了1以外,不能被其他任何数整除的数。 对于100200之间的每一个数都要做判断-是否为素数,即其不能被从2开始到自身的每一个数整除;,7,算法流程图,8,源程序,#include main( ) int m,i; for(m=100;m=m) /表示没有一个数能够整除,即此数为素数; printf(%d ,m); ,9,/*另解*/ #include #include main() int m,i,k; for(m=100;m=k+1) printf(%d ,m); ,详见课本P127 例6.9,10,/另解,引入continue #inclu
4、de #include main() int m,i,k; for(m=100;m=k+1) printf(%d ,m); ,11,二、基本算法,穷举法:待解问题的答案“隐藏”在多个可能之中,对这多种可能的情形一一进行测试,从而找出符合条件的解。,1.穷举法,12,例:百钱百鸡问题。鸡公值五钱,鸡母值三钱,三小鸡值一钱,凡百钱买百鸡,问鸡公、鸡母、小鸡各多少?,分析 假设鸡公、鸡母、小鸡的数量分别为cocks,hens,chicks, 则可以得出以下模型: 5*cocks+3*hens+chicks/3=100; /*100钱*/ cocks+hens+chicks=100; /*100只鸡*
5、/ 其中0=cock=20;0=hens=33;0=chicks=99;,13,穷举过程,依次对cocks,hens,chicks取值范围内的各数一一进行试探,找出满足前面两个方程的组合解。,14,源程序1,#include main() int cocks,hens,chicks; for(cocks=0;cocks=20;cocks+) /*穷举cock*/ for(hens=0;hens=33;hens+) /*穷举hen*/ for(chicks=0;chicks=99;chicks+) /*穷举chick*/ if(5*cocks+3*hens+chicks/3=100) ,15,另
6、解,#include main() int cocks,hens,chicks; for(cocks=0;cocks=20;cocks+) /*穷举cock*/ for(hens=0;hens=33;hens+) /*穷举hen*/ chicks=100-cocks-hens; /*鸡的数量为100*/ if(5*cocks+3*hens+chicks/3.0=100) /*100钱*/ printf(cocks=%d,hens=%d,chicks=%dn,cocks,hens, chicks); ,16,基本算法,迭代:用不断变化的新值替代旧值;如银行存款利率计算。 递推:由一个变量的值推出
7、另外变量的值;如fibonacci数列问题; 两者没有严格的区别。 使用迭代与递推关键是通过观察、分析,找出前项与后项之间的关系-迭代或递推的关系。,2.迭代与递推,17,例:编程输出Fibonacci数列前10项,Fibonacci数列规律:前两项为1,从第3项开始,每项等于前两项的和; 即:F(1)=1,F(2)=1,F(3)=2,F(4)=3F(n)=F(n-1)+F(n-2); 从第3项开始规律: F(n)=F(n-1)+F(n-2);,18,源程序,#include main() int f1=1,f2=1,f; int i; for(i=3;i=10;i+) f=f1+f2; /当
8、前项等于前两项之和 f1=f2; /f1表示当前项的前两项 f2=f; /f2表示当前项的前一项 printf(%d,f); ,正推,19,例:猴子吃桃问题。课本P129 6.10,时间 剩余桃子数 吃的桃子数 10天 1 9天 t 8天 x x/2+1 3天 2天 1天,假如第n天剩余桃子数为x,第n+1天剩余的桃子是为t,那么: x-(x/2+1)=t 即:x=2*(t+1),此即为相邻两项的关系。,20,源程序,#include main() int day=9,peach=1; /peach表示剩下的桃子数 while(day0) peach=(peach+1)*2; /当天的桃子数等
9、于前一天的2倍加1; day-; printf(第一天的桃子数为:%d,peach); ,反推,21,用for循环实现,#include main() int day,peach=1; for(day=9;day0;day-) peach=(peach+1)*2; printf(第一天的桃子数为:%d,peach); ,22,作业,P129 6.7 6.8 6.14 4:将1元钱分别换成1分、2分和5分的硬币,编程求出有多少种不同的分法及每种分法各种硬币的数量。 认真复习、总结前面所学的知识(课件+课本);,23,上讲作业讲解,/P129 6.1 #include void main() in
10、t m,n,temp,i,gongyue,gongbei; scanf(%d,%d, ,24,/P129 6.2 #include void main() int char_num=0,place_num=0,num_num=0,other_num=0; char ch; while(ch=getchar()!=n) if(ch=a ,25,/P129 6.6 #include #include void main() int i; int a,b,c; for(i=100;i1000;i+) a=i/100; b=i/10%10; c=i%10; if(i=pow(a,3)+pow(b,3)
11、+pow(c,3) printf(%d ,i); ,26,1.编程计算半径为115的圆的面积,仅输出面积超过50的圆的面积;,#include #define PI 3.1415 void main() int r; float s; for(r=15;r=1;r-) s=PI*r*r; if(s50) break; else printf(“%f ”,s);,27,2.编写程序输出1100之间所有不能被7整除的数;,#include void main() int i; for(i=1;i=100;i+) if(i%7=0) continue; else printf(“%d ”,i); ,#include void main() int i; for(i=1;i=100;i+) if(i%7!=0) printf(“%d ”,i); ,28,3.编写程序输出100以内整数中13倍数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年网约车监管业务知识考试试卷及答案
- 2026中国智能智能增强现实城市建筑设计行业市场现状供需分析及投资评估规划分析研究报告
- 2026 年河南中烟厂区紧缺人才综合素养招聘试卷 招录 63 人
- 2026年gsp药品养护员试题及答案
- 2026经过深入安排传统肌理工艺的新时代时尚设计研究报告
- 2026虚拟现实内容开发生态现状与硬件适配性研究报告
- 2026年ECMO 器官灌注变化练习试卷及答案
- 2026年瑜伽教学课程管理与评估能力测试卷
- 2026年人体生理学实验报告撰写与评价试卷
- 2026年云计算平台运维与管理专项训练题库
- 科瑞智库:2026汉诺威国际车展全景洞察与趋势研判报告
- 2026年地产运营AI 解决方案合同
- 邀请招标文件
- 学史方法(一)如何建立历史的纵向联系 课件(内嵌视频 )2025-2026学年统编版八年级历史下册
- GB/T 47111-2026公园城市建设评价指南
- 船厂看火监护制度规范
- 手术消毒铺单知识
- 2025年文山州遴选公务员笔试真题汇编带答案解析
- 铁路线路起道作业课件
- 社会主义制度在中国的确立+说课课件-2024-2025学年高中政治统编版必修一中国特色社会主义
- 《病原生物学的研究》课件
评论
0/150
提交评论