版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
循环结构程序设计(二)
本章主要内容do循环continue语句break语句循环的嵌套循环类题目举例do循环格式:do
循环体语句while(
表达式
);注意,如循环体语句为多条语句,则需要用{}构造成复合语句执行步骤Ⅰ.执行循环体语句Ⅱ.判断表达式值,为0转到Ⅲ,否则转到ⅠⅢ.结束循环,开始执行后面的语句do循环为先做后判断,因此循环体至少能执行一次先操作后判断循环的图示流程图和N-S图表示do循环举例问题:输入一行字母(即遇到’\n’截止),统计并输出输入字母的个数(不包括’\n’)#include"stdio.h"intmain(){ charc; intcount=0; do{ c=getchar(); count++; }while(c!='\n'); printf("%d\n",count);}//注意输出结果是错的,因为把’\n’算在内了,应该输出count-1continue与breakcontinue与break
continue语句continue语句只能用在循环内部执行continue语句会跳过循环体内continue后的语句,继续循环continue示例//示例1#include"stdio.h"intmain(){inti,j=0;for(i=0;i<10;i++){printf("A:%d,%d\n",i,j);if(i%2==0)continue;j++;printf("B:%d,%d\n",i,j);}}//示例2#include"stdio.h"intmain(){inti=0,j=0;do{i++;printf("A:%d,%d\n",i,j);if(i%3==0)continue;j++;printf("B:%d,%d\n",i,j);}while(i<10);}break语句break语句的功能是终止循环,开始执行后面的语句,常用来提前终止循环以节约时间举例:输入一个整数,判断是否是素数intmain(){ inti,n,flag=1;//是素数标记
scanf(“%d”,&n); for(i=2;i<=sqrt(n);i++){ if(n%i==0){flag=0;break;}//break用来提前结束循环,节约时间
} }//思考一下,如果去掉if语句后的{}会出现什么现象循环嵌套当一个循环出现在另一个循环内部时,就出现了循环嵌套,内层循环就变成外层循环的一个语句,对于外层循环的每次循环,内层循环都要循环一个周期举例:#include"stdio.h"intmain(){ inti,j; for(i=0;i<5;i++){ printf("i=%d\n",i); for(j=0;j<10;j++) printf("j=%d,",j); printf(“\n********\n"); }}循环嵌套举例用putchar(‘‘)putchar(‘*’)和putchar(‘\n’)输出下列图形,高度为n行//5号图形#include"stdio.h"intmain(){inti,j,n;//行,列循环变量及行数
scanf("%d",&n);for(i=0;i<n;i++){for(j=0;j<n-i;j++)putchar('');//输出n-i个空格
for(j=0;j<2*i+1;j++)putchar('*');//输出2*i+1个"*"putchar('\n');}}循环举例-11.用∏/4=1-1/3+1/5-1/7+…(-1)n1/(2n-1)求∏值2.输入一个整数,输出其所有能对他整除的数,如输入34结果为1,2,173.输出所有水仙花数(一个三位数abc=a3+b3+c3)5.输入一个整数,写出其素数因子积的形式,如输入180,输出1*2*2*3*3*5//输入一个整数,写出其因子积的形式,如输入180,输出1*2*2*3*3*5#include"stdio.h"intmain(){ intn,i=2; scanf("%d",&n); printf("1"); while(i<=n){ while(n%i==0){printf("*%d",i);n/=i;} i++; }printf("\n");}循环举例-21.Fibonacci数列前两项值为0,1,后面每项是前两项之和,试输出前二十项2.输入一个整数,把各位数颠倒输出,如输入12345,输出543214.3.//3#include"stdio.h"#include"math.h"intmain(){ doubles,t,eps=1e-5; s=2;//已包含第一项
t=sqrt(2);//第二项分母
while(fabs(2/t-1)>eps){//最后一项接近1 s=s*2/t; t=sqrt(2+t);//获得下一项分母
} printf("%f\n",s); }循环举例-3用二分法求方程x*x-2x-2=0根#include"stdio.h"#include"math.h"intmain(){doublex1,x2,y1,y2,y,x,eps=1e-5;/*x=0作为一个点,然后分别向正轴向,和负轴向寻找与y值异号的另外一点*/x=0;y=x*x-2*x-2;//x保存一个点位置y1=y2=y;x1=x2=0;while(y1*y>0&&y2*y>0){x1--;y1=x1*x1-2*x1-2;x2++;y2=x2*x2-2*x2-2;}if(y2==0){x=x2;gotoend;}elseif(y1==0){x=x1;gotoend;}//y1或y2为0说明x1或x2为根//否则用二分法计算近似根if(y2*y<0){x1=x2;y1=y2;}//x1保存另外一个点位置x2=x;y2=y;//x2保存0点位置while(fabs(x1-x2)>eps){x=(x1+x2)/2;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- LBS商家系统开发教程课程设计
- 初一美术课课程设计
- 运维笔试题及答案
- 2026苏州工业园区小升初数学入学摸底卷答案详解评分细则错题归纳
- 爆款课程设计培训
- 益阳福宇生猪养殖技改项目环境影响报告书
- 电动自行车动力系统设计散热设计课程设计
- 初中音乐九年级上册《侗族大歌·布谷催春》深度鉴赏与传承教案
- 2026年湖南省常宁市高一数学下册期末考试模拟测试卷附答案(模拟题)
- 2026年吉林省德惠市高一数学下册期末考试模拟测试卷及答案【名师系列】
- 画法几何及土木工程制图课件
- 江苏省苏州相城区苏州大学实验学校2023-2024学年小升初七年级上学期分班考英语试卷(含答案)
- 机械设备的润滑课件
- SL703-2015灌溉与排水工程施工质量评定表
- 二升三暑期奥数培优(学生教材)
- 门式启闭机主梁下主梁1工艺设计卡
- 人教版四年级下册数学期末测试卷(模拟题)
- 航理ppt课件 7-1概述及航空活塞动力装置-1
- 人教版数学必修一课后习题答案
- YS/T 1018-2015铼粒
- GB/T 18342-2009链条炉排锅炉用煤技术条件
评论
0/150
提交评论