第2章程序控制结构.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在前面介绍的三种循环结构中,都是以某个表达式的值作为循环结束条件。但在程序设计中,有时也希望能够直接控制程序流程的转移,这时就需要用到转向语句。在C++中提供了3个转向语句:跳转语句break、继续语句continue和转移语句goto。 分析 要输入20个正整数,可用for循环语句实现。但由于输入正整数的个数不确定(当输入了负整数就停止输入),即循环的次数不确定,故对这类情况可用if语句和break语句来决定何时退出循环。 【例 2.21】 求“水仙花数”。所谓“水仙花数”是指一个三位正整数,其各位数字的立方和等于该数本身。 例如:153=13+53+33。 方法1: 利用三重循环编写程序 因为“水仙花数”是三位整数,所以取值范围为100~999。 外循环变量i控制百位数字从1变化到9 中层循环变量j控制十位数字从0变化到9 内循环变量k控制个位数字从0变化到9。 …… int i,j,k,n; cout水仙花数:; for(i=1;i=9;i++) for(j=0;j=9;j++) for(k=0;k=9;k++) { m=i*i*i+j*j*j+k*k*k; n=100*i+10*j+k; if(m==n) coutm ; } …… * 第六十二页,共六十九页。 方法2:不使用循环嵌套,只用1个for语句编写程序。 ………… int main() { int i,j,k,n; cout水仙花数:; for(n=100;n1000;n++) { i=n/100; // i为百位数字 j=n/10-i*10; // j为十位数字 k=n%10; // k为个位数字 if(i*i*i+j*j*j+k*k*k==n) coutn ; } ………… * 第六十三页,共六十九页。 【例 2.22】 用“枚举法”求解百元买百鸡问题。假定公鸡5元1只,母鸡3元1只,小鸡1元3只,现在有100元钱要买100只鸡,且需包含公鸡、母鸡和小鸡,编程列出所有可能的购鸡方案。 分析 设公鸡、母鸡、小鸡各为x、y、z只,可列出方程: 采用试凑法(也称为穷举法或枚举法)来实现,即将可能出现的各种情况一一罗列测试,判断是否满足条件,采用循环结构来实现。 * 第六十四页,共六十九页。 #include iostream using namespace std; int main() { int x,y,z; cout公鸡数\t母鸡数\t小鸡数\tendl; for(x=1;x=19;x++) //公鸡最多买(100-3-1/3)/5只 for(y=1;y=31;y++) //母鸡最多买(100-5-1/3)/3只 { z=100-x-y; if(5*x+3*y+z/3.0==100) coutx\ty\tzendl; } return 0; } * 第六十五页,共六十九页。 【例2.23】 用牛顿迭代法求一元方程2x3-4x2+3x-6=0在x=1.5附近的根,要求精度为10-6。 分析:“迭代法”又称为“递推法”,其基本思想是把一个复杂的计算过程转化为简单过程的多次重复,每次重复都是从旧值的基础上递推出新值,并由新值代替旧值。 图2.29 牛顿迭代法示意图 f(x1) x3 y 0 C B A x x1 x2 x4 D 曲线在A点的斜率为: f (x1)=f(x1)/(x1-x2) x2=x1-f(x1)/ f (x1) Xn+1=xn-f(xn)/ f (xn) 输入x1值,由公式求出x2,再由x2从公式求出x3,......,直到 | x n+1- xn | ﹤10-6 时可视x n+1为方程f(x)=0在X1附近的一个近似根 。 * 第六十六页,共六十九页。 在本题中,用f表示f(xn),用f1表示f (xn),得: f=2xn3-4xn2+3xn-6 =(2 (xn-2) xn +3) xn -6 f1=6 xn2-8 xn +3 =2(3 xn -4) xn +3 在程序中,用xn表示xn,用xn1表示xn+1 * 第六十七页,共六十九页。 #include iostream #include cmath using namespace std; int main() { float xn,xn1,f,f1; cout请输

文档评论(0)

虾虾教育 + 关注
官方认证
文档贡献者

有问题请私信!谢谢啦 资料均为网络收集与整理,收费仅为整理费用,如有侵权,请私信,立马删除

版权声明书
用户编号:8012026075000021
认证主体重庆皮皮猪科技有限公司
IP属地重庆
统一社会信用代码/组织机构代码
91500113MA61PRPQ02

1亿VIP精品文档

相关文档