版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章循环结构程序设计思考求1100的累加和。分析换一种思路:sum=1+2+100;首先设置一个累计器sum,其初值为0,利用sum += n来计算(n依次取1、2、100),只要解决以下3个问题即可: (1)将n的初值置为1; (2)每执行1次“sum += n;”后,n增1; (3)当n增到101时,停止计算。此时,sum的值就是1100的累计和。sum=sum+n;一、goto语句二、while语句三、do-while语句四、for语句五、break、continue语句六、几种循环的比较主要内容格式goto 语句标号说明(1) 与if 语句一起构成循环结构。(2) 不符合结构化程序设
2、计原则,一般不用。#include int main() int n=1, sum=0; loop: sum += n; n+; if (n=100) goto loop; printf(“sum=%dn”, sum); return 0; 举例使用goto语句与分语句配合构成循环结构,实现求1100的累加和。作用:使系统转向标号所在的语句行执行。标号的定名规则与变量名相同。一、goto语句格式while (表达式) 循环体语句 说明1. 循环体如果包含一个以上的语句,必须使用复合语句形式。2. 在循环体中,必须有使循环条件趋向于不满足(假)的语句。3. 先判断表达式,后执行语句。 ?含义当表
3、达式为真(非0值)时,执行while语句中的内嵌语句。执行过程表达式循环体语句假 真 循环体语句当表达式值为真N-S图表示二、while语句sum= 55举例求110的累加和。 i=1 sum=0当i=10sum=sum+ii+输出suminclude int main() int i,sum; i=1; sum=0; while (i=10) sum=sum+i; i+; printf(“sum=%5dn”,sum); return 0;思考1. 如果去掉循环体中的大括号,执行过程将会怎样变化?2. 在循环体中,使循环条件趋向于不满足(假)的语句是哪条??1 求15的累加和.2 求110的奇
4、数和.3 求110的偶数和.二、while语句格式do 循环体语句while (表达式);说明1. 循环体如果包含一个以上的语句,必须使用复合语句形式。2. 在循环体中,必须有使循环条件趋向于不满足(假)的语句。3. 先执行循环体语句,后判断表达式的值。 ?含义执行do-while语句中的内嵌语句,直到表达式为假(0)才跳出循环。执行过程表达式循环体语句假真循环体语句当表达式值为真N-S图表示至少执行一次三、do-while语句sum= 55举例求110的累加和。 include int main() int i,sum; i=1; sum=0; do sum=sum+i; i+; while
5、 (i=10); printf(“sum=%5dn”,sum); return 0;i=1 sum=0当i10)输出sumsum=sum+ii+思考1. 如果去掉循环体中的大括号,执行过程将会怎样变化?2. 在循环体中,使循环条件趋向于不满足(假)的语句是哪条?三、do-while语句举例while和do-while循环的比较。 include int main() int i,sum; scanf(“%d”,&i); while(i=10) sum=sum+i; i+; printf(“sum=%dn”,sum); return 0;include int main() int i,sum;
6、 scanf(“%d”,&i); do sum=sum+i; i+; while(i=10) printf(“sum=%dn”,sum); return 0;输入:1 输入:11 sum=55输出:sum=55sum=0输出:sum=11此程序的功能?什么情况下两者结果相同?三、do-while语句格式for (表达式1;表达式2;表达式3) 语句 for (循环变量赋初值;循环条件;循环变量增值) 语句 执行过程(1)先求解表达式1;(2)求解表达式2,若其值为真,则 执行循环体语句,然后执行第(3)步;若为假,则结束循环,转到第(5)步;(3)求解表达式3;(4)转向步骤(2);(5)循环
7、结束,执行for语句下面的一个语句。表达式2循环体语句假 真求解表达式1求解表达式3四、for语句sum= 55举例求110的累加和。 sum=0for i=1 to10sum=sum+i输出suminclude int main() int i,sum; sum=0; for (i=1;i=10;i+) sum=sum+i; printf(“sum=%5dn”,sum); return 0;?1 求15的累加和.2 求110的奇数和.3 求110的偶数和.四、for语句for (表达式1;表达式2;表达式3) 语句 说明三个表达式都可以省略。表达式2循环体语句假 真求解表达式3表达式1省略循
8、环体语句求解表达式1求解表达式3表达式2省略表达式2循环体语句假 真求解表达式1表达式3省略四、for语句说明1i=1;for(; i=10;i+) sum=sum+i; 2for (i=1; ;i+) sum=sum+i; ?3for (i=1;i=10 ;) sum=sum+i; i+; for(i=1; i=10;i+) sum=sum+i; 表达式1可以省略,但其后的分号不可以省略。没有循环结束条件,构成了死循环for(i=1; i=10;i+) sum=sum+i; 四、for语句说明45for( ; ; ) sum=sum+i; 6表达式1和表达式3可以是与循环变量无关的表达式。f
9、or( ;i=10 ; ) sum=sum+i; i+; 7表达式2一般是关系表达式,也可以是数值或字符表达式。while(i=10) sum=sum+i; i+ ; while (1) sum=sum+i; 表达式1和表达式3可以同时省略,此时等同于while语句。for(sum=0,i=1;i=100,i+) sum=sum+i; 例建议:for语句中只放与循环控制有关的语句。四、for语句格式while (表达式1) if (表达式2) break; 举例 . sum=0; for (i=1;i5) break; sum=sum+i; printf(“sum=%5dn”,sum); .w
10、hile (表达式1) if (表达式2) conitue; 结束整个循环结束本次循环 . sum=0; for (i=1;i=10;i+) if (i=5) continue; sum=sum+i; printf(“sum=%5dn”,sum); .五、breakcontinue语句说明1. 三种循环语句在处理循环问题时,一般可以相互替代。2. 对于循环次数固定的问题,用for语句实现比较简单。3. 对于循环次数不确定的问题,可用while语句或do-while语句实现。4. while语句:先判断,后执行。 do-while语句:先执行,后判断。六、几种循环语句的比较概念一个循环体内又包含
11、另一个完整的循环结构,称为循环嵌套。 1 2 3 4 2 4 6 8 3 6 9 12 4 8 12 16举例打印乘法口诀表。 #include int main() int i,j; for (i=1;i=4;i+) for (j=1;j=4;j+) printf(“%4d”,i*j); printf(“n”); return 0;i=1, j=1 1*1 j=2 1*2 j=3 1*3 j=4 1*4i=2, j=1 2*1 j=2 i=3i=4for i=1 to 4输出i*jfor j=1 to 4换行七、循环嵌套 1 2 4 3 6 9 4 8 12 16#include int m
12、ain() int i,j; for (i=1;i=4;i+) for (j=1;j=i;j+) printf(“%4d”,i*j); printf(“n”); return 0;(一)循环嵌套思考1#include int main() int i,j; for (i=1;i=4;i+) for (j=1;j=5-i;j+) printf(“%4d”,i*j); printf(“n”); return 0;(一)循环嵌套思考2 1 2 3 4 2 4 6 3 6 4#include int main() int i,j; for (i=1;i=4;i+) for (j=1;j=4-i;j+)
13、 printf(“ ” ); for (j=5-i;j=4;j+) printf(“%4d”,i*j); printf(“n”); return 0;(一)循环嵌套思考3 4 6 8 6 9 12 4 8 12 16#include int main() int i,j; for (i=1;i=4;i+) for (j=1;j=i-1;j+) printf(“ ” ); for (j=i;j=4;j+) printf(“%4d”,i*j); printf(“n”); return 0;(一)循环嵌套思考4 1 2 3 4 4 6 8 9 12 16例1利用公式:/4=1-1/3+1/5-1/7
14、+求 的近似值,直到某一项的绝对值小于10-6为止。#include #include int main() int s; float n,t,pi; t=1;pi=0;n=1.0;s=1; while(fabs(t)1e-6) pi=pi+t; n=n+2; s=-s; t=s/n; pi=pi*4; printf(pi=%10.6fn,pi); return 0; 思考:使用那一种循环控制语句?(二)程序举例pi=1-1/3+输出4* pis=1(-1)n=1,3,5,7t=s/n例2求Fibonacci数列的前40个数。#include int main() long int f1,f2
15、; int i; f1=1;f2=1; for(i=1;i=3) 1 1 2 3 5 8 13 21 34 55 89 144 (二)程序举例例3判断m是否为素数。素数(质数): 只能被1和它本身整除的数。判别方法:57:若256之间的每一个数都除不开56,则56为素数,否则56不是素数。m, k=m-1,i=2k :若每一个 i 的值都除不开m,则m为素数,否则m不是素数。flag=1;k=sqrt(m);for (i=2;i=k;i+) if (m%i=0) flag=0;if (flag=1) printf(“yes!”);else printf(“no!”);k=sqrt(m);for (i=2;i=k+1) printf(“yes!”);else printf(“no!”);k=m-1;k=m/2;(m+1)/2;k=sqrt(m);sqrt(m+1)(二)程序举例例3输出 101200之间的全部素数。for m=101 to 200判断m是否为素数若m是素数,则输出并统计个数n.每输出10个素数,换行#include #include int main() int m,k,i,n=0; for(m=101;m=200;m=m+2) k=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外语专家聘用合同样本
- 智能纺纱工厂创新创业项目商业计划书
- 有机葵花籽油礼品盒创新创业项目商业计划书
- 经典车型复古重生行业跨境出海项目商业计划书
- 精密电阻测量仪器企业制定与实施新质生产力项目商业计划书
- 中学生自我管理能力提升计划
- 小学生写景细节描写作文示范与辅导要点
- 客户关系管理与渠道策略学霸笔记
- 工厂环保节能技术应用及成效
- 退货合同条款详解及签订注意事项
- 机器学习原理及应用课件:回归分析
- 水表知识培训
- 手绘植物花卉课件
- 土耳其移民合同范本
- 制冷复审课件
- 执法员压力与情绪管理课件
- 小升初道法复习课件
- 外科疼痛病人护理
- 学堂在线 现代生活美学-插花之道 章节测试答案
- 供货周期保证措施
- 2025至2030中国文物保护行业市场发展现状分析及发展前景与投资机会报告
评论
0/150
提交评论