- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五讲 嵌套结构
* 循环嵌套结构 循环结构体里包含其它循环结构 * 循环嵌套结构(一)统计sample02_05.cpp 输入n个学生的学号和5门功课成绩求每位同学的总分和平均分,最后输出班级平均总分,最高总分和学号 每位同学的总分 sum 班级总分 total 最高总分 max 最高分学号maxno * 算法 1.total=0,max=-1,maxno=-1 2.循环i从1到n step 1 (1)输入学号 (2) sum=0 (3)循环j从1到5 step 1 输入一个成绩x sum=sum+x (4)输出该学生的学号,总分和平均分 (5) total=total+sum (6)如果该学生的总分比max高,修正max和maxno 3.输出班级总分和平均分,最高分学生的学号和总分 * 循环嵌套结构(二)画图形 画图形:n行 i 空格 星号 5 1 4 3 3 5 2 7 1 9 0 11 n-i 2*i-1 * 分析过程 循环i从1到n行 step 1 输出一行 输出一行 1.输出空格 2.输出星号 3.回车 输出空格 循环j从1到n-i 输出一个空格 输出星号 循环j从1到2*i-1 输出一个星号 * 算法 sample02_06.cpp 循环i从1到n行 step 1 1.输出空格 循环j从1到n-i 输出一个空格 2.输出星号 循环j从1到2*i-1 输出一个星号 3.回车 //循环i从1到n行 step 1 for(i=1;i=n;i++) { // 1.输出空格 for(j=1;j=n-i;j++) printf( ); // 2.输出星号 for(j=1;j=2*i-1;j++) printf( *); // 3.回车 printf(\n); } * 复合嵌套结构 选择结构和循环结构相互嵌套 * 复合嵌套结构(一)求素数 判断一个数是不是素数 求100以内的全部素数 例4-9 sample02_07.cpp * 判断一个数n是不是素数 定义: 除了1和本身,不能2到n-1的数整除的数。 算法 循环i从2到n-1 如果n能被i整除 跳出循环 如果in 则不是素数 否则是素数 * 求100以内的全部素数 分析 循环i从3到100 如果i是一个素数则输出 * 算法:求100以内的全部素数 循环i从3到100 m=sqrt(i) 循环j从2到m 如果i能被j整除 跳出循环 如果im 则是素数,输出 * 复合嵌套结构(二)穷举法 穷举所有可能的方案,对每一种方案检查是否符合约束条件。找出所有可能的解 break语句-跳出一层控制结构 * 真 假 exp 语句1 假 expb 语 句2 循环体 真 带break语句的循环控制 for( ; 符合循环的条件 ; ) {...... if(结束循环的条件) break; } * * 穷举法举例:例4-11 搬砖问题sample02_08_1.cpp 某地需要搬运砖块,已知男人一人搬3块,女人一人搬2块,小孩两人搬一块。问用45人正好搬45块砖,有多少种搬法? for (men = 0; men = 45; men++) for (women = 0; women = 45; women++) for (child = 0; child = 45; child++) if ((men+women+child==45) (men*3+women*2+child*0.5==45)) printf(men=%d women=%d child=%d\n, men, women, child); } * 例4-11 源程序(2) sample02_08_2.cpp for (men = 0; men = 15; men++) for (women = 0; women = 22; women++){
原创力文档


文档评论(0)