- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章循环结构 本章教学内容、要求 内容 1、三种循环语句(while、do-while和for)的格式、功能及用法; 2、循环嵌套; 3、break语句和Continue语句在循环中的用法; 4、多重循环。 5、介绍程序设计的一些常用算法 要求 1、熟悉三种循环语句的格式及功能; 2、掌握循环语句的使用; 3、掌握break、continue语句的用法; 4、掌握程序设计的一些算法 重点与难点 重点 1. 循环结构; 2. 程序的设计方法。 难点 程序设计方法 §5.1 while循环语句 while语句用来实现“当型”循环。 一.格式:while(表达式) 语句;二. 注意: 1、循环体是一个单个语句,若循环体包含一个以上的语句,应该用{}将这些语句括起来,以复合语句形式出现; 2、循环体中应有使循环趋向于结束的语句,否则将产生死循环!如: while (1) printf(“why?”); 3、 while的循环体可以是空语句。 例如:while(putchar(getchar())!=‘\n’); /*输入一行字符,并显示 */§5.1 while循环语句 [例5-1] 求n ! 分析:n!= n*(n-1)*(n-2)* ..2*1,0! = 1。即S0=1,Sn=Sn-1*n。可以从S0开始,依次求出S1、S2、...Sn。 统一令S等于阶乘值,S的初值为0!=1;变量i为计数器,i从1变到n,每一步令S=S*i,则最终S 中的值就是n!。 §5.1 while循环语句 mai n ( ) /*求n !*/ { int n,i;long int s;printf( please input n (n=0) :); scanf ( %d , n ) ;if (n=0){ s = 1 ;if (n0){ i = 1 ;while (i=n){ s * = i ;i = i + 1 ;} /* End of while */} /* End of if (n0)*/printf(%d! = %ld \n,n,s);} /* End of if (n=0)*/ else printf(Invalid input! \n); } §5.1 while循环语句 [例5-2] 利用格里高利公式求π:π/4 = 1 - 1/3 + 1/5 - 1/7 + ... 直到最后一项的绝对值小于等于10-6为止。 # include stdio.h # include math.h main ( ) { double pi, t;long int n ,s ;t = 1.0 ;n = 1 ;s = 1 ;pi= 0.0 ;while (fabs(t)=1e-6){ pi= pi+ t ;n = n + 2 ; s = - s ;t = ( float ) s / n ;}pi= pi* 4 ;printf( pi = %lf\n,pi) ; } §5.2 do-while循环语句 do-while语句用来实现“直到型”循环。 一.格式:do 语句 while(表达式);二.特点:先执行,后判断。因此,循环体至少被执行一次。 三. 注意: 1、注意do ...while与标准的直到型循环结构的区别:直到型循环是当条件为真时结束循环,而do...while语句是条件为假时结束循环。 2、避免“死循环”的出现。 3、当循环体包含多条语句时,使用复合语句。 §5.2 do-while循环语句 例[5-3] 计算sin(x) = x- x3/3! + x5/5! - x7/7! + ... 直到最后一项的绝对值小于1e-7时为止。 分析:这道题使用递推方法来做。 让多项式的每一项与一个变量n对应,n的值依次为1,3,5,7,...,从多项式的前一项算后一项,只需将前一项乘一个因子: (-x2)/((n-1)*n) §5.2 do-while循环语句 #include math.h #include stdio.h main ( ) { double s,t,x; int n ;/*s表示多项式的值,t表示每一项的值*/printf(please input x :); scanf( %lf,x ) ;t = x ;n=1;s = x ;do {n = n + 2 ;t = t*( -x*x)/(n-1)/n ;s = s + t ;}while (fabs(t)=1e-7);printf(sin(%f )=%lf,x ,s ) ; } §5.2 do-while循环语句 [例5-4]: 求 s=1+2+3+4…+n main() {
您可能关注的文档
最近下载
- 2025江苏苏州张家港市长江保坍实业有限公司招聘1人备考试题及答案解析.docx VIP
- 探讨TPACK理论在力学实验教学中的应用.docx VIP
- 2024-2025学年度工程硕士复习提分资料(名校卷)附答案详解.docx
- 江苏苏州张家港市长江保坍实业有限公司招聘笔试题库2025.pdf VIP
- 2025江苏苏州张家港市长江保坍实业有限公司招聘1人笔试历年参考题库附带答案详解.docx VIP
- Oxford学习策略量表(SILL).doc VIP
- 山东发展投资控股集团有限公司招聘笔试题库2025.pdf
- 桌面应急演练评估表.docx VIP
- 麻醉患者的护理(护理课件).ppt
- 广汽本田-奥德赛-保修手册-锐·畅享版-GHA6480BAC6AHEV-奥德赛(混动版)维修保修手册.pdf VIP
文档评论(0)