控制程序流程.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
控制程序流程.ppt

三重循环求解 int main() { int x,y,z; coutMan \t Women \t Children\n“; for(x=0;x=30;x++) for(y=0;y=30;y++) for(z=0;z=30;z++) { if(x+y+z==30 3*x+2*y+z==50) coutx“\t”y“\t”z“\n”; } return 0; } “\t”表示制表符。 分析:循环体执行31×31×31,循环时x、y 确定后,z就会确定,不需要再循环。此外, 每种人的循环范围不一定都是30。 -*- 缩小穷举范围 int main() { int x,y,z; coutMan \t Women \t Children\n“; for(x=0;x=16;x++) for(y=0;y=25;y++) for(z=0;z=30;z++) { if(x+y+z==30 3*x+2*y+z==50) coutx“\t”y“\t”z“\n”; } return 0; } -*- 2重循环 int main() { int x,y,z; coutMan \t Women \t Children\n“; for(x=0;x=16;x++) for(y=0;y=25;y++) { z = 30 – x – y; if( 3*x+2*y+z==50) coutx“\t”y“\t”z“\n”; } return 0; } 某一次循环迭代中,x和y确定后,z便可以 计算得出,减少了循环的次数。 -*- 1重循环的尝试 采用消元法,消去变量z,得到新的方程式 2x+y=20 对于这一方程式,我们可以采用一重循环来穷举x的所有可能,即x从0变到16,但只要x确定下来,y便可以通过方程式来确定,x和y确定下来,则z可以由x+y+z=30确定。 -*- 1重循环(小Bug) int main() { int x,y,z; coutMan \t Women \t Children\n“; for(x=0; x=16; x++) { y = 20 - 2*x; z = 30 - x - y; if( 3*x+2*y+z==50) coutx“\t”y“\t”z“\n”; } return 0; } -*- 1重循环 int main() { int x,y,z; coutMan \t Women \t Children\n“; for(x=0; x=16; x++) { y = 20 - 2*x; z = 30 - x - y; if(y0 || z0) continue; if( 3*x+2*y+z==50) coutx“\t”y“\t”z“\n”; } return 0; } -*- -*- 本章内容安排 while循环 do~while循环 for循环 高级循环 switch switch的动机 对同一个变量,若存在多个分支判断情况,使用嵌套的if语句,将导致代码非常烦琐混乱,不易理解且难以维护。 switch语句,检查表达式,根据结果匹配执行多个代码块中的1个。 -*- switch的基本结构 switch(表达式) { case 常量1: 语句1; break; case 常量2: 语句2; break; …… case 常量n: 语句n; break; default: 语句n+1; } switch的表达式必须是一个整数值。 case分支后必须为常量,不能是变 量或者表达式,分支间不允许重复。 switch语句执行时,若匹配到某个 case,执行后面的语句;若没有匹 配的case,执行default部分。 通常每个case分支,都应该有break 语句,用于退出switch。若某个 case没有break,当前分支执行完 后,继续下一个case分支。 良好编程习惯:保留default,处理 特殊情况。 -*- 等级分转百分制 #include iostream int main() { char grade; int score; cout“Enter your letter grade: “; cingrade; …… ret

文档评论(0)

此项为空 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档