第5章循环结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 循环体多于一个语句时要使用复合语句。
• for语句常常用于构成计数型循环。
天津大学仁爱学院
2020/10/8
共25页 第10页
for语句的执行流程:
for(表达式1;表达式2; 表达式3) 循环体
计算表达式1
0
判断表达式2?
非0
执行循环体
计算表达式3
天津大学仁爱学院
退出循环
2020/10/8
共25页 第11页
/* 循环体可写成:sum+=i++; */
printf(“1+2+…+100=%d\n“,sum); }
天津大学仁爱学院
2020/10/8
共25页 第4页
例题5.3 π
用 1 1 1 1 1 11求
4 3579 nn 2
的近似值,直到最后一项的绝对值小于10-6为止。
#include <stdio.h> #include <math.h> main( ) { double n=1.0,pi=0.0,t=1.0;
第五章 循环结构
循环结构是结构化程序设计的三种基本 结构百度文库一。在程序设计中,利用循环结构处 理各类重复操作既简单又方便,循环结构又 称重复结构。
在C语言中有三种可以构成循环结构的 循环语句:
while语句 do- while语句 for语句
2020/10/8
while语句和用while语句 构成的循环结构
迭代法:(1)设x1=0; (2) x2=cos x1; (3)若|x1-x2|< 10-6,则取x1或x2为根,结束; 否则置x1=x2,然后转步骤(2)
#include <stdio.h>
#include <math.h>
main( ) { double x1,x2; int i=0;
x1=0.0; x2=cos(x1);
/*计算下一项*/
f0=f1; f1=f2 ; /*准备计算下一项*/
}while(f1<=1000);
printf(“F=%d\n”,f1);
}
输出结果: F=1597
天津大学仁爱学院
2020/10/8
共25页 第9页
for语句和用for语句构成的 循环结构
• for语句构成的循环结构称为for循环。
• for循环的一般形式:
for(表达式1;表达式2; 表达式3) 循环体
• 表达式1: 为循环控制变量赋初值表达式;
说
• •
表达式2 :为控制循环执行的条件表达式; 表达式3 :为修改循环控制变量的表达式;
• 表达式1、表达式2、表达式3之间用“ ; ”号分隔;
• 它们均可以是逗号表达式;
明 • 各表达式均可省略,但“ ; ”不能省略;
天津大学仁爱学院
2020/10/8
共25页 第3页
例题5.1 求自然数1~100的累加和。
#include <stdio.h> main( ) { int i,sum;
i=1;sum=0;
/*以上两条语句可写成:int i=1,sum=0; */
while(i<=100) { sum=sum+i; i++; }
#include <stdio.h> void main() { char ch;
ch='A'; do { printf(“%c”,ch);
ch++; /*字符的ASCII码值加1*/ }while(ch<='Z'); printf(“\n”); }
天津大学仁爱学院
2020/10/8
共25页 第8页
例题5.7 求自然数1~100的累加和。
#include <stdio.h> main( ) { int i,sum;
for(i=1,sum=0; i<=100 ; i++) sum+=i;
printf(“1+2+…+100=%d\n“,sum); }
天津大学仁爱学院
2020/10/8
共25页 第12页
do
do-while语句执行流程: 循环体
while(表达式);
说明:
非0
表达式 ? 0 (退出循环)
do-while语句属于直到型循环,直到表达式的值为0时结 束循环。
直到型循环:先执行循环体,然后再判断条件。 直到型循环体至少执行一次。
天津大学仁爱学院
2020/10/8
共25页 第7页
例5.5 输出26个英文大写字母A~Z 。
while语句构成的循环也称“当”循环(while循环)。 while循环的一般形式:
while (表达式) 循环体
• 其中: 表达式可以是任意合法的表达式,不能为空,表
达式的值决定了循环体是否执行。 循环体可以是一条简单可执行语句或复合语句。
天津大学仁爱学院
2020/10/8
共25页 第2页
While语句的执行过程
入口
说明:
No
表达式 ≠0?
Yes 循环体
出口
•While(当型)循环,既当条件成 立时执行循环。 •先判断条件,若条件成立则执行 循环。如果第一次判断时条件就 不成立,则循环体一次也不执行。
• 在循环体内改变表达式中有关
变量的值,使表达式的值最终变 成0,以便能结束循环,或者在一 定条件下结束循环,否则,循环 将会无限次地进行(死循环)。
例5.6 计算斐波那契(Fibonacci)数列, 直到某项大于1000为止并输出该项。
Fibonacci数列:f0=0,f1=1,f2=1,f3=2,…,fn=fn-1+fn-2。
#include <stdio.h>
void main()
{ int f0=0,f1=1,f2;
do
{ f2=f0+f1;
int sign=1; while(fabs(t)>=1e-6) { pi+=t; n+=2.0;
sign*=-1; t=sign/n; } printf(“pi=%15.9f\n”,4*pi); }
天津大学仁爱学院
2020/10/8
共25页 第5页
例题5.4 用迭代法求方程x=cos x的近似根,要求 误差小于10-6。
程序执行结果: x=0.739086,i=34
while(fabs(x1-x2)>=1e-6)
{ x1=x2; x2=cos(x1); i++; }
printf("x=%f,i=%d\n",x2,i);
}
天津大学仁爱学院
2020/10/8
共25页 第6页
do-while语句构成的循环结构
do-while语句的 一般形式:
例5.8 求 m!。即计算1×2×3×…×m的值。 #include <stdio.h> main( ) { int i,m,p;