- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C程序设计基础-05-2-1
回顾 continue 通常用到什么地方? 循环 功能是什么? 不执行本次循环体中continue后面的内容 直接进入下一次循环 与break区别? Break退出最近的循环体 直接执行循环体后面的内容 x=x+2.0f是什么意思? 将2.0强制转换为浮点型 良好的编程书写习惯 到底什么时候使用数组呢? 数组的特点 同时定义多个同类型的变量 每个数组中的元素通过数组名与下标确定 数组中所有元素存放在一整片内存中 计算最肥羊例子 主要要点 理解数组的使用 挑选肥羊的算法 显示1-100之间的所有素数 显示1——100之间的所有素数 解决问题的思路 筛法 素数:不是任何数(1和自身除外)倍数的数 想法: 筛掉非素数 也就是筛掉是别人倍数的那些家伙 第一步: 找到这些非素数 显示1——100之间的所有素数 第二步: 筛掉这些非素数 怎么筛掉? 给非素数带上一个“特殊标记”; 设置一个数组: int prime[101]; 最开始让所有的数组元素的值都为0 当发现某个数x为非素数时,就将prime[x]=1 第三步: 显示素数 素数 怎么找非素数? 每一个非素数x的最小正因子都不会大于sqrt(x) 举例: 100的最小正因子:2 99的最小正因子:3 98的最小正因子:2 96的最小正因子:2 77的最小正因子:7 25的最小正因子:5 于是2—10之间每个数d的倍数就包含了2-100之间的所有非素数 问题 如果某个数是4的倍数,那这个数一定是2的倍数; 如果某个数是9的倍数,那这个数一定是3的倍数 如果某个数是10的倍数,那这个数一定是2的倍数 …… 如果要找出d的所有倍数时,d本身就是其他数的倍数,那d的倍数就不用再设置特殊标记了,因为前面肯定已经设置过了 如何判断d是否是别人的倍数呢? 看d有没有特殊标记: prime[d]==1 如何求d的倍数x x为: d+d d+d+d d+d+d+d …… 如何求d的倍数x 思想: 循环 循环初值:x=d+d; 参数调整:x=x+d 循环条件(终值):x=100 循环体: 给x一个特殊标记 prime[x]=1; 显示素数的完整算法 将prime数组中的值初始化为0 对于2-10之间的每个数d 如果d不是别人的倍数(prime[d]==0) 求出d的2-100之间的所有倍数x 循环 将x打上特殊“标记” 显示所有素数 既是显示prime[i]为0的那些i 程序框图 初始化数组 找出所有非素数并标记 显示所有素数 for(i=0;i=100;i=i+1) prime[i]=0; for(d=2;d=10;d=d+1) 如果prime[d]==0;找出d的所有倍数x,令 prime[x]=1; for(i=2;i=100;i=i+1) prime[d]==0 真 假 找出d的倍数并标记 for(x=d+d;x=100;x=x+d) prime[x]=1 关于程序框图 解决问题之前画出程序框图,对解题非常有帮助 按照顺序执行时 语句1; 语句2; 语句3; 关于程序框图 进行判断时(分支结构) 教材33页 条件 真 假 语句块1; 语句块2; 关于程序框图 for循环 教材32页 for(x=0;x=100;x=x+1) 循环体; 关于程序框图 Do……while()循环 教材58 do……while(条件) 循环体; 关于程序框图 while()循环 教材59 While(条件) 循环体; 求d的所有倍数x(2=x=100)并标记 for(x=d+d;x=100;x=x+d) prime[x]=1; x=d+d; while(x=100) { prime[x]=1; x=x+d; } 求d的所有倍数x(2=x=100)并标记 x=d+d; do { prime[x]=1 x=x+d; }while(x=100); 注意: 这里有分号 求两个数的最小公倍数 分析 两个数是x,y 假设x=y 他们的最小公倍数是z 则应该满足以下两个条件: z=k*x; (k=1,2,3,4……) z一定能被y整除; 思路 对于x的每一个倍数z(从小到大)进行判断 一旦z能被y整除(z%y==0),则表示这个z是x和y的最小公倍数 z=x; 求两个数的最小公倍数 程序框图 for(z=x;z%y!=0;z=z+x) ; while(z%y!=0) z=z+x; 求两个数的最小公倍数 注意:这里的假设是x=y 如果x大于y呢? 换值——倒油瓶 求两个数的最小公倍数 xy 真 假 将x,y的值调换
您可能关注的文档
最近下载
- 2025年高考历史试卷(山东卷)附答案解析.docx VIP
- 中国文化古城—西安.-PPT.pptx VIP
- 《西方社会学理论》全套教学课件.ppt
- 第7课 实践出真知 课件 中职高教版哲学与人生.pptx
- 一针疗法之肩周炎.ppt
- 2025中国银行中银国际证券股份有限公司招聘8人笔试模拟试题及答案解析.docx VIP
- 神经介入治疗概述及护理常规.ppt VIP
- 舒伯特第二即兴曲,降E大调 D.899之2 Impromptu No. 2 in E flat major, D. 899, No. 2 Op90 Schubert钢琴谱.pdf VIP
- 深潜器钛合金框架结构装配焊接工艺研究-中国造船工程学会.doc
- 村两委工作细则汇编.doc VIP
文档评论(0)