欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    第六章 循环结构程序设计.ppt

    • 资源ID:2237736       资源大小:585.50KB        全文页数:43页
    • 资源格式: PPT        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第六章 循环结构程序设计.ppt

    第六章 循环结构程序设计,2023年2月5日星期日,提出问题,求整数1到5的连加,怎么编程?,求整数1到100的连加,怎么编程?,main()int sum=0;sum=sum+1;sum=sum+2;sum=sum+3;sum=sum+4;sum=sum+5;printf(sum=%d,sum);,main()int sum=0;sum=sum+1;sum=sum+2;sum=sum+3;.sum=sum+100;printf(sum=%d,sum);,分析:让我们找出问题的规律sum=sum+i(i=1,2,3,100)sum=sum+i被重复执行 变量i有规律的变化解决这类问题可以采用,循环结构,2023年2月5日星期日,结束,开始,i=1,sum=0,i=100,Y,N,i=i+1,sum=sum+i,输出sum,i=1,i=2,i=2,i=3,提出问题,循环:反复执行同一段程序,直到满足一定的条件后才停止执行该段程序。,对于有规律的事物,一般都可以用循环来组织。,i=101,i=100,i=101,2023年2月5日星期日,第六章 循环结构程序设计,主要内容goto 和 if 语句构成循环while 语句dowhile 语句for 语句辅助控制语句:continue,break,2023年2月5日星期日,goto语句,goto语句的一般形式:goto 标号;标号:语句,说明:标号只能是标识符,不能用整数作标号标号只能加在可执行语句前面不能加在声明语句的前面标号在一个函数体内唯一,2023年2月5日星期日,goto语句,用if 和goto语句构成循环,求:,main()int i=1,sum=0;loop:if(i=100)sum+=i;i+;goto loop;printf(%d,sum);,2023年2月5日星期日,goto语句,goto语句的用途与 if 语句一起,构成循环从一个循环体中,跳转到循环体外,while()while()goto label;label:语句,C语言提供break来跳出本层循环,提供continue来结束本次循环goto语句的使用,有时会给程序带来致命的问题,结构化程序设计主张限制使用goto语句,2023年2月5日星期日,while 语句,while 语句的一般形式:while(exp)statement;,特点:先判断表达式,后执行循环体,2023年2月5日星期日,while语句,用while语句求:,main()int i=1,sum=0;while(i=100)sum=sum+i;i+;printf(%d,sum);,循环体,2023年2月5日星期日,while语句,用while语句求:,main()int i=1,sum=0;while(i=100)sum=sum+i;i+;printf(%d,sum);,死循环,运行时用 ctrl+break 可跳出当前运行,main()int i=1,sum=0;while(i=100)sum=sum+i;i+;printf(%d,sum);,2023年2月5日星期日,while 语句,while 语句的两个要素:,2023年2月5日星期日,while 语句,循环体可为任意类型语句循环体应当为一个单独的语句,或一个复合语句循环体中一定要有能够使循环趋向于结束的语句,避免出现“死循环”,while 语句的两个要素:,2023年2月5日星期日,dowhile 语句,dowhile 语句的一般形式:dostatement;while(exp);,特点:先执行循环体,后判断表达式,dowhile 语句至少会执行一遍循环体while 语句不一定,2023年2月5日星期日,dowhile 语句,dowhile 语句的一般形式:,dostatement;while(exp);,statement;while(exp)statement;,dowhile 语句可以转化为while 语句,2023年2月5日星期日,dowhile语句,用do while语句求:,main()int i=1,sum=0;do sum=sum+i;i+;while(i=100);printf(%d,sum);,循环体,2023年2月5日星期日,dowhile 语句,dowhile 语句的两个要素:,循环体可为任意类型语句循环体应当为一个单独的语句,或一个复合语句循环体中一定要有能够使循环趋向于结束的语句,避免出现“死循环”,2023年2月5日星期日,dowhile 语句,while语句 和 dowhile 语句比较:,main()int i,sum=0;scanf(%d,main()int i,sum=0;scanf(%d,1,5050,1,5050,101,0,101,101,while语句先判断表达式,后执行语句dowhile语句先执行循环体,后判断表达式while语句循环体执行次数0dowhile语句循环体执行次数1,2023年2月5日星期日,for 语句,for 语句的一般形式:for(exp1;exp2;exp3)statement;,for语句中exp1,exp2,exp3类型任意,都可省略,但分号不可省略无限循环:for(;)相当于 while(1)for语句可以转换成while结构,2023年2月5日星期日,for 语句,for 语句的一般形式:for(exp1;exp2;exp3)statement;for 语句一般应用形式:for(循环变量赋初值;循环条件;循环变量增值)循环体;例如:for(i=1;i=100;i+)sum=sum+i;,相当于:i=1;while(i=100)sum=sum+i;i+;,2023年2月5日星期日,for 语句,for 语句的一般形式:for(exp1;exp2;exp3)statement;exp1 和 exp3 可以是逗号表达式:例如:for(sum=0,i=1;i=100;sum+=i,i+);,相当于:sum=0;for(i=1;i=100;i+)sum+=i;,2023年2月5日星期日,for 语句,用 for 语句求:,main()int i,sum=0;for(i=1;i=100;i+)sum=sum+i;printf(%d,sum);,i=1;for(;i=100;i+)sum=sum+i;,i=1;for(;i=100;)sum=sum+i;i+;,for(i=1;i=100;sum+=i,i+);,2023年2月5日星期日,循环的嵌套,循环的嵌套是指:一个循环体内又包含另一个完整的循环结构三种循环结构可以相互嵌套,层数不限,(1)while()while().,(2)do do while();.while();,(3)while()do while();.,(4)for(;)do while();while().,for(;)do while()while();.,O,2023年2月5日星期日,break 语句,break 语句break;功能在循环语句中,跳出并终止循环体在switch语句中,跳出并终止分支语句体说明break只能终止并跳出最近一层的结构break不能用于循环语句和switch语句之外的任何其它语句之中体,2023年2月5日星期日,break 语句,break 语句break;,2023年2月5日星期日,break 语句,用 for 语句求:,main()int i,sum=0;for(i=1;i+)if(i100)break;sum=sum+i;printf(%d,sum);,i=1;for(;)if(i100)break;sum=sum+(i+);,2023年2月5日星期日,continue 语句,continue 语句continue;功能结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断说明continue只能用于循环体中,2023年2月5日星期日,continue 语句,continue 语句continue;,2023年2月5日星期日,continue 语句,输出100200之间不能被3整除的数:,main()int n;for(n=100;n=200;n+)if(n%3=0)continue;printf(%5d,n);,2023年2月5日星期日,算法举例-穷举法,穷举法将2角钱换成1分、2分和5分的硬币,列出所有可能的换法。main()int x,y,z,k=0;for(z=0;z=4;z+)for(y=0;y=(20-5*z)/2;y+)printf(“第%d种:1分=%dt2分=%dt5分=%dn”,+k,20-2*y-5*z,y,z);printf(“总的换法=%dn”,k);,2023年2月5日星期日,输入学生成绩,将及格者的成绩打印出来。main()int n,i;float score;printf(“输入学生总数:”);/*输入学生总数*/scanf(“%d”,&n);for(i=1;i=60.0)printf(“第%d 学生的成绩是:%fn”,i,score);,算法举例-穷举法,2023年2月5日星期日,求Fibonacci 数列的前40个数:F1=1(n=1)F2=1(n=2)Fn=Fn-1+Fn-2(n3),循环语句举例,f1 f2?,main()long f1=1,f2=1;int i;for(i=1;i=20;i+)printf(%12ld%12ld,f1,f2);if(i%2=0)printf(n);f1=f1+f2;f2=f2+f1;,i=1;while(i=20)printf(%12ld%12ld,f1,f2);if(i%2=0)printf(n);f1=f1+f2;f2=f2+f1;i+;,i=1;doprintf(%12ld%12ld,f1,f2);if(i%2=0)printf(n);f1=f1+f2;f2=f2+f1;i+;while(i=20);,main()long f1=1,f2=1;int i;for(i=1;i=20;i+)printf(%12ld%12ld,f1,f2);if(i%2=0)printf(n);f1=f1+f2;f2=f2+f1;,算法举例-迭代法,2023年2月5日星期日,循环程序设计举例,辗转相除法 main()int x,y,a,b,t;printf(输入两个整数x,y:);scanf(%d,%d,/*用乘积除以最大公约数得到最小公倍数*/,【例6.18】求两个整数的最大公约数和最小公倍数。,2023年2月5日星期日,分子 s:1,-1,1,-1分母 n:1,3,5,7,.项t=s/n,用 公式求 的近似值,直到某一项的绝对值小于 为止,#include main()int s;float n,t,pi;t=1;pi=0;n=1;s=1;while(fabs(t)=1e-6)pi=pi+t;n=n+2;s=-s;t=s/n;pi=pi*4;printf(“pi=%10.6f”,pi);,循环程序设计举例,2023年2月5日星期日,循环程序设计举例,用循环输出如下图案:*,main()int i,m,n;for(i=1;i=5;i+)/*行数的控制*/for(m=1;m=5-i;m+)printf(“”);/*空格的控制*/for(n=1;n=i;n+)printf(“*”);/*输出*个数的控制*/printf(“n”);/*每一行要有回车换行*/,2023年2月5日星期日,循环程序设计举例,打印所有的“水仙花数”(三位数:153135333)。,main()int i,ge,shi,bai;for(i=100;i=999;i+)bai=i/100;shi=i/10%10;ge=i%10;if(i=ge*ge*ge+shi*shi*shi+bai*bai*bai)printf(%6d,i);printf(n);getch();,2023年2月5日星期日,循环语句举例,判断m是否为素数:用2到m的平凡根之间的所有整数去除m若m可以被其中的一个整数除尽则说明m不是素数否则说明m是素数,#include main()int m,i,k;scanf(%d,若m能被从2到sqrt(m)的之间的数整除,则m不是素数循环提前结束,i必定小于等于k否则,m是素数,并且经过最后一次循环后,i=k+1,#include main()int m,i,k;scanf(%d,i=2;while(i=k)if(m%i=0)break;i+;,i=2;do if(m%i=0)break;i+;while(i=k);,#include main()int m,i,k;scanf(%d,无法判断:1、2、3这三个数!,2023年2月5日星期日,循环语句举例,输出100200间的全部素数:,#include main()int m,i,k,n=0;for(m=101;mk)printf(%5d,m);n=n+1;if(n%10=0)printf(n);,自己尝试用 while 和 dowhile 语句改写该程序,2023年2月5日星期日,循环语句举例,输入一个正整数,要求逆序输出该数:例如:输入12345,输出54321,main()int n;printf(Input the number:);scanf(%d,/*number缩小10倍*/,2023年2月5日星期日,循环语句举例,输出乘法九九表:,2023年2月5日星期日,循环语句举例,输出乘法九九表:,变量 i 表示行:(1i9)变量 j 表示列:(1ji)项 j列 i行=ij的值,main()int i,j;for(i=1;i10;i+)for(j=1;j=i;j+)printf(%d*%d=%dt,j,i,i*j);printf(n);,自己尝试用其他的循环语句的嵌套改写该程序,2023年2月5日星期日,循环语句举例,输入n,求n!:,main()int n;int m=1;printf(Please input a number:);scanf(%d,Please input a number:,5,0!=120,printf(%d!=,n);,printf(%dn,m);,5!=120,8,8!=-25216,long,printf(%ldn,m);,8!=40320,自己尝试用其他的循环语句的嵌套改写该程序,2023年2月5日星期日,本章要点,三种循环语句 while 语句 dowhile 语句 for 语句辅助循环语句 continue break goto,循环结构程序 求最大公约数和最小公倍数 多个数字求积、求和 Fibonacci数列 求素数 一个整数的逆序输出 乘法九九表 求n的阶乘n!,2023年2月5日星期日,课外作业:P130 一、单选题P134 二、填空题仔细阅读第六章的例题,特别是例6.18上机题目:P136 四、编程:1、3、6、7、8、11、13,作业,

    注意事项

    本文(第六章 循环结构程序设计.ppt)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开