文档详情

c6循环程序流程设计.ppt

发布:2019-03-17约7.38千字共38页下载文档
文本预览下载声明
第6讲 循环结构控制语句 6.1 概述 例6-5 打印九九乘法表 循环结构程序设计-小结 本讲通过多个实例介绍了循环控制结构在解决实际问题中的应用,不同的问题有不同的处理方法,现对程序设计的一般过程小结如下: 1.问题分析,明确需要重复处理的核心问题; 2.将循环问题粗略地划分为几个相对独立的阶段; 3.用流程图或N-S图进行算法描述; 4.确定循环控制条件,选定循环控制类型; 5.编写循环控制程序。  对于多重循环,内循环体通常用于具体操作,而外循环体则用于循环控制。 有36块砖,一次需要36人同时搬运,男青年每人搬4块,女青年每人搬3块,儿童两人搬1块。要求编写程序,把可能的搬运方案都找出来。 main() { int x,y,z; printf(men women children\n); for(x=0;x=8;x++) for(y=0;y=11;y++) { z=36-x-y; if(4*x+3*y+z/2==36) { printf(%3d,x); printf(%8d,y); printf(%10d\n,z); } } } 程序举例 t=1,pi=0,n=1.0,s=1 当|t|?1e-6 pi=pi+t n=n+2 s=-s t=s/n pi=pi*4 输出pi 分子:1,-1,1,-1… 分母:1,3,5,7,... 例 求Fibonacci数列:1,1,2,3,5,8,……的前40个数 f1=1,f2=1 for i=1 to 20 输出f1,f2 f1=f1+f2 f2=f2+f1 1 5 34 233 1597 10946 75025 514229 35245781 8 55 377 2584 17711 121393 832040 57028872 13 89 610 4181 28657 196418 1346269 92274653 21 144 987 6765 46368 317811 2178309102334155 例 判断m是否素数 读入m k=?m i=2 当i?k m被i整除 真 假 用break 结束循环 i=i+1 i?k+1 真 假 输出:m”是素数” 输出:m”不是素数” 问题分析: 设男青年、女青年、儿童数分别为x,y,z, 则可得如下方程组: x+y+z=36 4x+3y+z/2=36 算法设计:采用穷举法。使用双重循环设计程序。 搬砖问题(不定解方程) 返回 返回 虚解问题: 原因在于:z/2 if(4*x+3*y+z/2.0==36.0) 例6-6 搬砖问题的程序设计(穷举法) * 本讲主要内容: 一、 while循环语句 二、 do while循环语句 三、 for循环语句 四、 三种循环语句的比较 学习目的与要求: ——熟练掌握三种循环控制语句(while、do while、 for)的结构特点及使用方法; ——掌握循环程序设计方法,能利用三种循环控制语 句设计循环程序。 学习重点:三种循环结构的格式与执行流程。 学习难点:各种循环结构的执行流程及循环结束判定。 什么是循环? 为什么要使用循环? 问题1: 问题2:求学生平均成绩 分数相加后除以课数 在许多问题中需要用到循环控制。循环结构是结构化程序设计的基本结构之一,它和顺序结构、选择结构共同作为各种复杂程序的基本构造单元。 C语言可实现循环的语句: 用goto 和 if 构成循环 while 语句 do ~ while 语句 for 语句 goto语句及用goto构成循环 goto语句一般格式: goto 语句标号; ….….. 标号:语句; 功能:无条件转移语句 说明: 不能用整数作标号 只能出现在goto所在函数内,且唯一 只能加在可执行语句前面 限制使用goto语句 例 用if 和goto语句构成循环,求 /*ch5_1.c*/ #include stdio.h main() { int i,sum=0; i=1; loop: if(i=100) { sum+=i; i++; goto loop; } printf(%d,sum); } sum=0+1 sum==1+2=3 sum=3+3=6 sum
显示全部
相似文档