循环结构程序设计2.ppt

上传人:司*** 文档编号:4115636 上传时间:2021-02-08 格式:PPT 页数:27 大小:487KB
返回 下载 相关 举报
循环结构程序设计2.ppt_第1页
第1页 / 共27页
循环结构程序设计2.ppt_第2页
第2页 / 共27页
点击查看更多>>
资源描述

《循环结构程序设计2.ppt》由会员分享,可在线阅读,更多相关《循环结构程序设计2.ppt(27页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第5章 循环结构程序设计,5.1 为什么需要循环控制 5.2 用while语句实现循环 5.3 用do-while语句实现循环 5.4 用for 语句实现循环 5.5 循环的嵌套 5.6 几种循环的比较 5.7 改变循环执行的状态 5.8 循环程序举例,例5.3 while和do-while循环的比较。,int i,sum=0; printf(“i=?”); scanf(“%d”,int i,sum=0; printf(“i=?”); scanf(“%d”,当while后面的表达式的第一次的值为“真”时,两种循环得到的结果相同;否则不相同,for语句不仅可以用于循环次数已经确定的情况,还可以用

2、于循环次数不确定而只给出循环结束条件的情况 for语句完全可以代替while语句,for(sum=0,i=1 ; i=100; i+) sum=sum+i;,逗号表达式 合法,for(i=0,j=100 ; i=j; i+,j- ) k=i+j;,5.6几种循环的比较,(1)一般情况下,3种循环可以互相代替 (2) 在while和do-while循环中,循环体应包含使循环趋于结束的语句。 (3) 用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之前完成。而for语句可以在表达式1中实现循环变量的初始化。,5.7 改变循环执行的状态,5.7.1 用b

3、reak语句提前终止循环 5.7.2 用continue语句提前结束本次循环 5.7.3 break语句和continue语句的区别,continue语句只结束本次循环,而不是终止整个循环的执行 break语句结束整个循环过程,不再判断执行循环的条件是否成立,N,表达式1,Y,表达式2,N,Y,N,表达式1,Y,表达式2,N,Y,break语句,continue语句,强行退出循环,只结束本次循环,5.8循环程序举例,例5.7用 公式求 的近似值,直到发现某一项的绝对值小于10-6 为止(该项不累计加)。,5.8循环程序举例,解题思路: 求 近似值的方法很多,本题是一种 其他方法:,5.8循环程

4、序举例,每项的分子都是1 后一项的分母是前一项的分母加2 第1项的符号为正,从第2项起,每一项的符号与前一项的符号相反,5.8循环程序举例,#include #include int main() int sign=1; double pi=0,n=1,term=1; while(fabs(term)=1e-6) pi=pi+term; n=n+2; sign=-sign; term=sign/n; pi=pi*4; printf(pi=%10.8fn,pi); return 0; ,求绝对值的函数,只保证前5位小数是准确的,#include #include int main() int s

5、ign=1; double pi=0,n=1,term=1; while(fabs(term)=1e-6) pi=pi+term; n=n+2; sign=-sign; term=sign/n; pi=pi*4; printf(pi=%10.8fn,pi); return 0; ,改为1e-8,例5.9输入一个大于3的整数n,判定它是否素数(prime,又称质数)。 解题思路: 让n被i整除(i的值从2变到n-1) 如果n能被2(n-1)之中任何一个整数整除,则表示n肯定不是素数,不必再继续被后面的整数除,因此,可以提前结束循环 注意:此时i的值必然小于n,N,N,Y,n=i+1,输入n,i=

6、2,i n-1,Y,n被i整除,i a,输出不是素数,Y,输出是素数,N,#include int main() int n,i; printf(“n=?); scanf(%d, ,#include int main() int n,i; printf(“n=?); scanf(%d, ,k=sqrt(n);,#include int main() int n,i,k; printf(“n=?); scanf(%d, ,k=sqrt(n);,#include ,#include int main() int n,i,k; printf(“n=?); scanf(%d, ,k=sqrt(n);,

7、#include ,例5.10 求100200间的全部素数。 解题思路: 使用例5.9的算法 在例5.9程序中只要增加一个外循环,先后对100200间的全部整数一一进行判定即可, for(n=101;n=k+1) printf(%d ,n); m=m+1; if(m%10=0) printf(“n”); ,只对奇数进行检查,控制每行输出10个数据,例5.11 译密码。为使电文保密,往往按一定规律将其转换成密码,收报人再按约定的规律将其译回原文。 A B C D E F G W X Y Z 非字母字符保持原状不变 输入一行字符,要求输出其相应的密码,解题思路:问题的关键有两个: (1) 决定哪些

8、字符不需要改变,哪些字符需要改变,如果需要改变,应改为哪个字符 处理的方法是:输入一个字符给字符变量c,先判定它是否字母(包括大小写),若不是字母,不改变c的值;若是字母,则还要检查它是否W到Z的范围内(包括大小写字母)。如不在此范围内,则使变量c的值改变为其后第4个字母。如果在W到Z的范围内,则应将它转换为AD(或ad)之一的字母。,c=getchar();,解题思路:问题的关键有两个: (1) 决定哪些字符不需要改变,哪些字符需要改变,如果需要改变,应改为哪个字符 处理的方法是:输入一个字符给字符变量c,先判定它是否字母(包括大小写),若不是字母,不改变c的值;若是字母,则还要检查它是否W到Z的范围内(包括大小写字母)。如不在此范围内,则使变量c的值改变为其后第4个字母。如果在W到Z的范围内,则应将它转换为AD(或ad)之一的字母。,if(c=a c=getchar(); while(c!=n) if(c=a ,可以改进程序,char c; while(c=getchar()!=n) if(c=A ,不能少,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com