C语言中-循环结构课件

上传人:txadgkn****dgknqu... 文档编号:252753010 上传时间:2024-11-19 格式:PPT 页数:44 大小:422.75KB
返回 下载 相关 举报
C语言中-循环结构课件_第1页
第1页 / 共44页
C语言中-循环结构课件_第2页
第2页 / 共44页
C语言中-循环结构课件_第3页
第3页 / 共44页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,精品课件,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,精品课件,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,二级,三级,四级,五级,精品课件,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,二级,三级,四级,五级,精品课件,*,第五章,循环控制结构,1,1,精品课件,第五章 循环控制结构11精品课件,本章知识点:,while,语句的一般形式及应用,for,语句的一般形式及应用,do.while,语句的一般形式及应用,多重循环结构的使用,break,语句和,continue,语句,2,2,精品课件,本章知识点:while语句的一般形式及应用22精品课件,5.1 while,语句,语句的一般形式如下:,while (,表达式,),循环体语句,说明:,while,语句属于“当型”循环。,表达式,循环体语句,假(,0,),真(非,0,),图,5.1 while,语句流程图,3,精品课件,5.1 while语句语句的一般形式如下:表达式循环体语,说明:,(,1,),while,是关键字。,while,后圆括号内的表达式一般是关系表达式或逻辑表达式,但也可以是,C,语言中任意合法的表达式。,(,2,)循环体语句可以是一条语句,也可以是多条语句,如果循环体语句包含多条语句,则需要用一对花括号“,”,把循环体语句括起来,采用复合语句的形式。,while (,表达式,),循环体语句,4,精品课件,while (表达式)4精品课件,【,例,5.1】,求前,100,个自然数的和,。,#include,int main(),int n,sum;,n=1;sum=0;/*,变量赋初值,*,/,while(n=100),sum=sum+n;/*,累加求和,*,/,n+;/*,修改基本数据项,n*/,printf(sum=%dn,sum);,return 0;,5,5,精品课件,【例5.1】求前100个自然数的和。#include,需要注意的几个问题:,(,1,)累加求和算法。这个程序采用的算法思想称为累加求和,即:不断用新累加的值取代变量的旧值,最终得到求和结果,变量,sum,也叫“累加器”,初值一般为,0,。,(,2,)必须给变量赋初值。,(,3,)正确判断条件的边界值。,(,4,)避免出现“死循环”。,(,5,)可能出现循环体不执行。,(,6,),while,后面圆括号内的表达式一般为关系表达式或逻辑表达式,但也可以是其它类型的表达式,,.,6,精品课件,需要注意的几个问题:6精品课件,【,例,5.2】,使用,while,语句求,n,!,。,#include,int main(),int n,i=1;,double sum=1;,printf(,请输入一个正整数:,);,scanf(%d,while(i=A /*,判断是否为大写字母*,/,else if(ch=a /*,判断是否为小写字母*,/,else if(ch=0 /*,判断是否为数字*,/,else if(ch=)d+;,else e+;,printf(%d,%d,%d,%d,%dn,a,b,c,d,e);,return 0;,9,9,精品课件,【例5.3】编写程序,输入一个字符序列,直至换行为止,统计出,5.2 for,语句,for,语句的一般形式如下:,for,(表达式,1,;表达式,2,;表达式,3,),循环体语句,说明:,for,语句属于“计数”型循环。,10,精品课件,5.2 for语句for语句的一般形式如下:10精品课件,11,循环体语句,真,(,非,0),假,(0),表达式,1,表达式2,表达式,3,for,语句流程图,11,精品课件,11循环体语句真(非0)假(0)表达式1表达式2表达式3fo,For,语句最常用、最简单的形式,for,(循环变量赋初值;循环条件;循环变量增值),12,【,例,5.1】,求前,100,个自然数的和,。,#include,int main(),int n,sum=0;,for(n=1;n=100;n+)sum=sum+n;,printf(sum=%dn,sum);,return 0;,12,精品课件,For语句最常用、最简单的形式for(循环变量赋初值;循环条,【,例,5.4】,设,n=30,,编写程序,计算并输出,S(n),的值。,S(n)=(1*2)/(3*4)-(3*4)/(5*6)+(5*6)/(7*8)+(-1),(n-1),*(2n-1)*2n/(2n+1)*(2n+2)+,#include,#include,int main(),int n;,float s=0;,for(n=1;n=30;n+),s=s+pow(-1),(n-1)*(2*n-1)*2*n)/(2*n+1)*(2*n+2);,printf(s(n)=%f,s);,return 0;,13,13,精品课件,【例5.4】设n=30,编写程序,计算并输出S(n)的值,关于,for,语句的几点说明:,(,1,)循环体语句可以是简单语句也可以是使用一对花括号括起来的复合语句。如果是一个语句,也可以和,for,写在一行上,这样使程序看起来更加简洁;如果循环体包含多条语句,最好是另起一行,采用一对花括号括起来的复合语句形式,增加程序的可读性。,(,2,)表达式的省略。,for,语句中的三个表达式均可以省略,但是两个分号不能省略。,for,(循环变量赋初值;循环条件;循环变量增值),for,(表达式,1,;表达式,2,;表达式,3,),循环体语句,14,精品课件,关于for语句的几点说明:14精品课件,【,例,5.5】,编写程序,输出所有的水仙花数。水仙花数是指一个,3,位数,其各位数字的立方和等于该数本身。例如:,153=1,3,+5,3,+3,3,=153,,所以,153,就是水仙花数。,int main(),int a,b,c,i;,for(i=100;i=999;i+),a=i/100;,b=i/10%10;,c=i%10;,if(i=a*a*a+b*b*b+c*c*c),printf(%dn,i);,printf(n);,15,15,精品课件,【例5.5】编写程序,输出所有的水仙花数。水仙花数是指一个3,【,例,5.11】,判断,m,是否为素数。程序分析:所谓素数,就是一个正整数,除了本身和,1,以外并没有任何其他因子。例如,2,,,3,,,5,,,7,就是素数。,int main(),int m,i,k,flag;/*,定义标志变量,*,/,scanf(%d,flag=1;/*,假设,m,是素数,*,/,for(i=2;im;i+),if(m%i=0),flag=0;/*,表示,m,不是素数,*,/,break;/*,跳出循环,*,/,if(flag=1),printf(%d is a prime numbern,m);,else,printf(%d is not a prime numbern,m);,return 0;,16,16,精品课件,【例5.11】判断m是否为素数。程序分析:所谓素数,就是一,5.3 dowhile,语句,for,语句的一般形式如下:,do,循环体语句,While,表达式,;,说明:,do,while,语句属于“直到型”循环。,17,精品课件,5.3 dowhile语句for语句的一般形式如下:1,(1)dowhile语句中“While表达式;”后面的分号是不能省略的,这一点是和while语句不一样的。,(2)dowhile语句是先执行循环体语句,后判断表达式,因此无论条件是否成立,将至少执行一次循环体。而while语句是先判断表达式,后执行循环体语句,因此,如果表达式在第一次判断时就不成立,则循环体一次也不执行。,18,精品课件,(1)dowhile语句中“While表达式;”后面,注意:,(,1,)在计算机解决实际问题时,常常会用到类似本程序的“穷举法”。“穷举法”解决的问题一般具有这种特点:如果问题有解,一组或多组,必定全在某个集合中;如果这个集合内无解,集合外也肯定无解。这样,在解决问题时,就可以将集合中的元素一一列举出来,验证是否为问题的解。本题就是一一验证,100,999,之间所有的数,最终找出答案。,(,2,)程序中在做是否相等关系判断(“,i=a*a*a+b*b*b+c*c*c,)使用到了关系运算符“,=”,,而不是“,=”,,后者是赋值运算符,在,c,语言中这两种运算符形式是不一样的,要注意区别。,19,精品课件,注意:19精品课件,20,循环体语句,表达式,假,(0),真,(,非,0),图,5.5 dowhile,语句流程图,20,精品课件,20循环体语句表达式假(0)真(非0)图5.5 dowh,While,语句和,dowhile,语句的比较:,一般来说,对于同一个问题,使用,While,语句或,dowhile,语句结果是一样的,但有时并不一样,比较,以下两段程序:,21,#include,int main(),int n,sum=0;,scanf(%d,while(n=10),sum=sum+n;,n+;,printf(sum=%dn,sum);,return 0;,#include,int main(),int n,sum=0;,scanf(%d,do,sum=sum+n;,n+;,while(n=1.0e-6);,pi=4.0*pi;,printf(pi=%10.7,l,fn,pi);,23,【,例,5.7】,用公式,求,的近似值,直到,最后一项的绝对值小于,10,-6,为止。,23,精品课件,void main()23【例5.7】用公式 求的近似,三种循环的比较,:,(,1),while 和dowhile语句一般实现标志式循环,即无法预知循环的次数,循环只是在一定条件下进行;而for语句大多实现计数式循环。,(,2)一般来说,while 和dowhile语句的循环变量赋初值在循环语句之前,循环结束条件是while后面圆括号内的表达式,循环体中包含循环变量修改语句;一般for循环则是循环三要素集于一行。因此,for循环语句功能更强大,形式更简洁,使用更灵活。,(,3)while和for是先测试循环条件,后执行循环体语句,循环体可能一次也不执行。而dowhile语句是先执行循环体语句,后测试循环条件,所以循环体至少被执行一次。,24,精品课件,三种循环的比较:24精品课件,5.4,多重循环结构,for(;),for(;),for(;),for(;),for(;),for(;),嵌套循环,并列循环,交叉循环(错误),25,精品课件,5.4 多重循环结构for(;)for(;,循环的嵌套,是指一个循环语句的循环体内完整的包含另一个完整的循环结构。前述三种循环结构(,while,循环、,for,循环、,do-while,循环)可以任意组合嵌套。,循环的嵌套有双重循环嵌套和多重循环嵌套。但一般使用两重或三重的比较多,,若嵌套层数太多,就降低了程序的可读性和执行效率。,如果是多重循环,外循环和内循环应选用不同的循环控制变量。,26,26,精品课件,循环的嵌套是指一个循环语句的循环体内完整的包含另一个完整的循,双重循环嵌套,:,嵌套层次数为,2层的循环嵌套,执行过程是:,首先,进行外层循环的条件判断,当外层循环条件成立时顺序执行外层循环体语句,遇到内层循环,则进行内层循环条件判断,并在内层循环条件成立的情况下反复执行内层循环体语句,当内层循环因循环条件不成立而退出后重新返回到外层循环并顺序执行外层循环体的其它语句,外层循环体执行一次后,重新进行下一次的外层循环条件判断,若条件依然成立,则重复上述过程,直到外层循环条件不成立时,退出双重循环嵌套,执行后面其它语句。,27,精品课件,双重循环嵌套:嵌套层次数为2层的循环嵌套27精品课件,【,例,5.8】,编写程序,输出
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!