(精品)c语言电子教案6

上传人:痛*** 文档编号:252961200 上传时间:2024-11-26 格式:PPT 页数:34 大小:920KB
返回 下载 相关 举报
(精品)c语言电子教案6_第1页
第1页 / 共34页
(精品)c语言电子教案6_第2页
第2页 / 共34页
(精品)c语言电子教案6_第3页
第3页 / 共34页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,UNIX C,编程,yyyy-M-,P,age *,给一个不多于,5,位的正整数,求它是几位数,分别打印每一位数字,并按逆序打印出各位数字。,求,num,的各位数字:,ten_tho,=num/10000;,tho,=(num-,ten_tho,*10000)/1000;,hun,=(num-,ten_tho,*10000-tho*1000)/100;,ten=(num-,ten_tho,*10000-tho*1000-hun*100)/10;,indiv,=(num-,ten_tho,*10000-tho*1000-hun*100-ten*10),习题,:,习题,:,有,4,个圆塔,圆心为,(2,2),,,(-2,2),,,(-2,-2),,,(2,-2),,圆半径为,1,,这,4,个塔高,10m,,它以外无建筑物。现输入任意一点的坐标,求该点的建筑高度(塔外高度为,0,)。,知识点,:,goto,循环,while,循环,dowhile,循环,for,循环,break,、,continue,语句,重点:,while,循环,do-while,循环,for,循环,难点:,for,循环,第,6,章 循环控制,6.1,概述,循环结构是结构化程序设计的基本结构之一,它和顺序结构、选择结构共同作为各种复杂程序的基本构造单元。,(1),用,goto,语句和,if,语句构成循环;,(2),用,while,语句;,(3),用,dowhile,语句;,(4),用,for,语句。,6.2,goto,语句以及用,goto,语句构成循环,goto,语句为无条件转向语句,它的一般形式为,goto,语句标号,;,例如:,goto,label1;,结构化程序设计方法主张限制使用,goto,语句。一般来说,可以有两种用途:,与,if,语句一起构成循环结构;,从多层循环的内层循环跳到外层循环外时才用到,goto,语句。,这种用法不符合结构化原则,一般不宜采用,只有在不得已时,(,例如能大大提高效率,),才使用。,例 用,if,语句和,goto,语句构成循环,求 。,6.2,goto,语句以及用,goto,语句构成循环,main(),int,i,sum=0;,i=1;,loop:,if(i,=100),sum=,sum+i,;,i+;,goto,loop;,printf(“nsum,=%,d,sum,);,sum=5050,while,语句用来实现“当型”循环结构。其一般形式如下:,while(,表达式,),语句组,当表达式为非,0,值时,执行,while,语句中的内嵌语句组。,其特点是:先判断表达式,后执行语句组。,6.3,while,语句,6.3,while,语句,例,求 。用传统流程图和,N-S,结构流程图表示算法。,main(),int,i,sum,=0;,i=1;,while(i=100),sum=,sum+i,;,i+;,printf(“%d,sum,);,5050,6.3,while,语句,例 输入两个正整数,m,和,n,,,求其最大公约数和最小公倍数。,算法:,n*m,p;,大数放在,n,中,小数放在,m,中,;,m!=0,,,继续;否则,最后一步,;,r=,n%m,;mn;r m;,回到判断,m!=0,步,;,最大公约数为,n,,,最小公倍数为,p/n,。,input n and m,12,35,greatest common divisor is 1,lease common multiple is 420,6.3,while,语句,例 求,Sn,=,a+aa+aaa,+,aa,a n,个,a,之值,其中,a,是一个数字。例如:,2+22+222+2222+22222(,此时,n=5),,,n,由键盘输入。,算法:,i=1;sum=0;t=0;,输入,a,和,n,i=n,t=t+a;,sum=sum+t;,a=a*10;,i+;,输出,sum,input a and n:2,5,a+aa+aaa,+.=24690,需要注意:,循环体如果包含一个以上的语句,应该用“,”,括起来,以复合语句形式出现。,在循环体中应有使循环趋向于结束的语句(即改变表达式的值为,0,)。如果无此语句,则表达式的值始终不改变,循环永不结束。,6.3,while,语句,do while,语句的一般形式为:,do,语句组,while(,表达式,);,先执行一次指定的语句组,然后判别表达式,当表达式的值为非,0,时,返回重新执行语句组,如此反复,直到表达式的值等于,0,为止,此时循环结束。,其特点是:先执行语句组,后判断表达式。,6.4 do while,语句,例 用,do_while,语句求 。,6.4 do while,语句,main(),int,i,sum,=0;,i=1;,do,sum=,sum+i,;,i+;,while(i,=100);,printf(%d,sum,);,5050,如果,while,后面的表达式一开始就为假,(0,值,),时,两种循环的结果是不同的。,例,while,和,do-while,循环的比较。,2,次运行程序,各输入,1,和,11,6.4 do while,语句,结论:当,while,后面的表达式的第一次的值为“真”时,两种循环得到的结果相同。否则,二者结果不相同,(,指二者具有相同的循环体的情况,),。,main(),int,i,sum,=0;,scanf(%d,&i,);,while(i=10),sum=,sum+i,;,i+;,printf(“sum,=%,d,sum,);,main(),int,i,sum,=0;,scanf(%d,&i,);,do,sum=,sum+i,;,i+;,while(i=10);,printf(“sum,=%,d,sum,);,for,语句的一般形式为:,for(,表达式,1;,表达式,2;,表达式,3),语句组,执行过程:,先求解表达式,1,。,求解表达式,2,,若其值为真,(,值为非,0),,则执行,for,语句中的内嵌语句,然后执行下一步。若为假,(,值为,0),,则结束循环。,求解表达式,3,。,转回上面第二步,继续执行。,循环结束,执行,for,语句下面的一个语句。,6.5 for,语句,for,语句最简单的应用形式也就是最易理解的如下形式:,for(,循环变量赋初值,;,循环条件,;,循环变量增值,),语句组,相当于以下语句:,表达式,1;,while(,表达式,2),语句,表达式,3;,例,:for(i=1;i=100;i+),sum=,sum+i,;,6.5 for,语句,i=1;,while(i=100),sum=sum+i;,i+;,说明:,表达式,1,省略,此时应在,for,语句之前给循环变量赋初值。,注意省略表达式,1,时,其后的分号不能省略。,如,for(,;,i,=100;i+)sum=sum+i;,执行时,跳过“求解表达式,1”,这一步,其他不变。,如果表达式,2,省略,即不判断循环条件,循环无终止地进行下去。也就是认为表达式,2,始终为真。,例如:,for(i=1,;,i+)sum=sum+i;,表达式,1,是一个赋值表达式,表达式,2,空缺。,它相当于:,i=1;,while(1),sum=sum+1;,i+;,6.5 for,语句,表达式,3,省略,但此时程序设计者应另外设法保证循环能正常结束。如:,for(i,=1;i=100;),sum=sum+i;,i+;,表达式,1,和表达式,3,省略,只有表达式,2,,即只给循环条件,如:,for(;i,=100;)while(i=100),sum=sum+i;,相当于,sum=sum+i;,i+;,i+;,在这种情况下,完全等同于,while,语句,。,6.5 for,语句,三个表达式都省略,for(,;,),语句组 相当于,while(1),语句组。,即不设初值,不判断条件,(,认为表达式,2,为真值,),,循环变量不增值。无终止地执行循环体。,表达式,1,可以是设置循环变量初值的赋值表达式,也可以是与循环变量无关的其他表达式。表达式,3,也如此。表达式,1,和表达式,3,也可以是逗号表达式。如,:,for(sum=0;i=100;i+)sum=sum+i;,for(sum,=0,i=1;i=100;i+)sum=sum+i;,for(i,=0,j=100;i=j;i+,j-)k+=i*j,;,for(i,=1;i=100;i+,i+)sum=sum+i;,相当于,for(i=1;i=100;i=i+2)sum=sum+i;,6.5 for,语句,表达式一般是关系表达式或逻辑表达式,,,但也可以是数值表达式或字符表达式,只要其值为非零,就执行循环体。分析下面两个例子:,for(i,=0;(c=,getchar,(),!=,n;,i+=c,),;,for(;(c=,getchar,()!=,n;),printf(%c,,,c);,作用是每读入一个字符后立即输出该字符,直到输入一个“换行”为止。,注意,从终端键盘向计算机输入时,是在按,Enter,键以后才送到内存缓冲区中去的。运行情况:,computer(,输入,),computer (,输出,),而不是,ccoommppuutteerr,6.5 for,语句,一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。,三种循环,(while,循环、,dowhile,循环和,for,循环,),可以互相嵌套。,例如,下面几种都是合法的形式:,6.6,循环的嵌套,(2),do,do,while();,while();,(3)for(;),for(;),(4),while(),do,while();,(5)for(;),while(),(1)while(),while(),(6),do,for(;),while();,四种循环都可以用来处理同一问题,一般情况下它们可以互相代替。但一般不提倡,用,goto,型循环。,while,和,do.while,循环,只在,while,后面指定循环条件,在循环体中应包含使循环趋于结束的语句,(,如,i+,,或,i=i+1,等,),。,for,循环可以在表达式,3,中包含使循环趋于结束的操作,甚至可以将循环体中的操作全部放到表达式,3,中。因此,for,语句的功能更强,凡用,while,循环能完成的,用,for,循环都能实现。,用,while,和,dowhile,循环时,循环变量初始化的操作应在,while,和,dowhile,语句之前完成。而,for,语句可以在表达式,1,中实现循环变量的初始化。,while,循型、,dowhile,循环和,for,循环,可以用,break,语句跳出循环,用,continue,语句结束本次循环。而对用,goto,语句和,if,语句构成的循环,不能用,break,语句和,continue,语句进行控制。,6.7,几种循环的比较,break,语句,break,语句可以用来从循环体内跳出循环体,即提前结束循环,接着执行循环下面的语句。,break,语句的一般形式为:,break;,break,语句不能用于循环语句和,switch,语句之外的任何其他语句中。,6.8,break,语句和,continue,语句,for(r,=1;r100)break;,printf(%f,area,);,continue,语句,一般形式为:,continue;,作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。,continue,语句和,break,语句的区别是:,continue,语句只结束本次循环,而不是终止整个循环的执行。,break,语句则是结束整个循环过程,不再判断执行循环的条件是否成立。,6.8,break,语句和,continue,语句,while(,表达式,1),if(,表达式,2)b
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


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

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


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