嵌套循环和循环综合.ppt

上传人:sccc 文档编号:5394972 上传时间:2023-07-03 格式:PPT 页数:31 大小:230.52KB
返回 下载 相关 举报
嵌套循环和循环综合.ppt_第1页
第1页 / 共31页
嵌套循环和循环综合.ppt_第2页
第2页 / 共31页
嵌套循环和循环综合.ppt_第3页
第3页 / 共31页
嵌套循环和循环综合.ppt_第4页
第4页 / 共31页
嵌套循环和循环综合.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《嵌套循环和循环综合.ppt》由会员分享,可在线阅读,更多相关《嵌套循环和循环综合.ppt(31页珍藏版)》请在三一办公上搜索。

1、重庆邮电大学计算机科学与技术学院冯 潇,嵌套循环和循环综合,2023/7/3,回顾,循环的分类当型循环直到型循环循环的3种基本表示,while(表达式)循环体,do 循环体while(表达式);,2023/7/3,循环结构控制语句3for,格式:for(表达式1;表达式2;表达式3)循环体 表达式1一般为循环变量赋初值,可以为任何表达式类型表达式2用于判断循环是否结束表达式3实现循环变量的累加。3个表达式都可以省略,但分号不能省。表达式2省略,代表循环条件永远为真,2023/7/3,主要算法思想,穷举法特点:列举指定范围类所有可能的情况进行计算应用:高斯问题递推法特点:根据前面n-1项的值,计

2、算第n项的值应用:累加、累乘迭代法(辗转法)特点:不断用变量的旧值递推新值的过程 应用:辗转相除法求最大公约数、更相减损术求最大公约数,2023/7/3,主要内容,嵌套循环注意循环变量初值的设置设计结构良好的程序减少使用break、continue、goto学会使用标志变量flag循环综合应用,2023/7/3,图案一 图案二*,打印下列图案,2023/7/3,嵌套循环,2023/7/3,2023/7/3,打印图案一,void main()int i,j;char star=*;for(i=1;i=4;i+)for(j=1;j=4;j+)printf(%c,star);printf(n);,*

3、,void main()int i,j;/*内外层循环变量保持不同名*/char space=,star=*;for(i=1;i=4;i+)if(i4)printf(%*c,4-i,space);for(j=1;j=2*i-1;j+)printf(%c,star);printf(n);,打印图案二,*,2023/7/3,使用嵌套的循环体时,应注意以下问题,在嵌套的各层循环体中,使用复合语句(即用一对大花括号将循环体语句括起来)保证逻辑上的正确性 内层和外层循环控制变量不应同名,以免造成混乱 嵌套的循环最好采用右缩进格式书写,以保证层次的清晰性 循环嵌套不能交叉,即在一个循环体内必须完整的包含着

4、另一个循环,2023/7/3,有30个人,其中有男人、女人和小孩,在一家饭馆吃饭共花了50先令,每个男人各花3先令、每个女人各花2先令,每个小孩各花1先令,问共有几个男人、女人、小孩,马克思手稿中的数学问题,2023/7/3,void main()int x,y,z;for(x=0;x=16;x+)for(y=0;y=25;y+)z=30-x-y;if(3*x+2*y+z)=50)printf(“men=%d,women=%d,childs=%dn”,x,y,z);,2023/7/3,编写结构良好的程序,采用“自顶向下、逐步求精”的思想结构化程序的特点:只有一个入口;只有一个出口;无死语句,即

5、不存在永远都执行不到的语句;无死循环,即不存在永远都执行不完的循环。示例:判断某数是否是素数,2023/7/3,素数问题,从键盘上输入一个数,编程判断该数是否是素数。如果是,输出“Yes!”,否则,输出“No!”分析从键盘上键入一个数m判断该数的正负,如果是负数,则退出程序计算k=sqrt(m)循环变量i从2变化到k,依次检查m%i是否为0若m%i为0,则判定m不是素数,中止循环,否则遍历所有i值后退出循环,这时判定m是素数,解法一,#include#include#include void main()int m,i,k;printf(Please enter a number:);scan

6、f(“%d”,/*计算m的平方根*/,2023/7/3,for(i=2;i k)printf(Yes!n);else printf(No!n);printf(Program is over!n);,2023/7/3,break和continue,对for、while、do-while循环进行内部手术break,退出循环break不能单独和if语句搭配使用continue,中断此次循环体的执行,开始下一次break和continue少用为妙goto不做介绍,2023/7/3,找出200-300之间能被3整除的数,#include void main()int i;for(i=200;i=300;

7、i+)if(!(i%3)printf(“%dn”,i);,int m,i,k,flag=1;/*标志变量flag初值置为1*/*i=k和flag中只要有一个为假就结束循环*/for(i=2;i=k,解法二核心代码,综合应用1,编程输出如下格式的九九乘法表,2023/7/3,分析,遇到循环嵌套情况时,要仔细分析每个循环变量用于控制什么,循环变量的初值和循环终止的条件观察该乘法表发现:每行有9列,总共9行这道题中关键问题:每一个打印出来的数是按照什么规律得到的这个规律中,循环变量起什么作用循环变量的初值和循环终止的条件,2023/7/3,实现,#include void main()int m,n

8、;for(m=1;m10;m+)printf(%4d,m);/*打印表头*/printf(n);for(m=1;m10;m+)printf(-);printf(n);,2023/7/3,for(m=1;m10;m+)/*被乘数m从1变化到9*/for(n=1;n10;n+)/*乘数n从1变化到9*/printf(%4d,m*n);/*输出第m行n列中的m*n的值*/printf(n);/*输出换行符,准备打印下一行*/,综合应用2,编程输出如下格式的九九乘法表,2023/7/3,分析,关键是控制每行打印的列数规律是:第1行打印1列第2行打印2列第m行打印m列,2023/7/3,实现,#incl

9、ude void main()int m,n;for(m=1;m10;m+)printf(%4d,m);/*打印表头*/printf(n);for(m=1;m10;m+)printf(-);printf(n);,2023/7/3,for(m=1;m10;m+)/*被乘数m从1变化到9*/for(n=1;n=m;n+)/*乘数n从1变化到m*/printf(%4d,m*n);/*输出第m行n列中的m*n的值*/printf(n);/*输出换行符,准备打印下一行*/,2023/7/3,作业,预习第三章剩下的内容和第五章 打印如下九九乘法表,大作业,在10000以内验证哥德巴赫猜想之“1+1”命题:任意大的偶数,都可以表示为两个素数之和按照如下格式打印100以内整数的平方根表,2023/7/3,平方根表作业提示,第一行为单独打印的表头表内第一行打印0-9的平方根第二行打印10-19的平方根第10行打印90-99的平方根设表的行数有x行,列数有y列,则对应第x行第x列的表值为sqrt(x*10+y),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号