C语言 39 x10 39,C语言循环结构程序设计.ppt

《C语言循环结构程序设计.ppt》由会员分享,可在线阅读,更多相关《C语言循环结构程序设计.ppt(39页珍藏版)》请在人人文库网上搜索。

1、第4章 循环结构程序设计,方法一: if(x1) y= x; else if(x10) y= 2*x-1; else y=3*x-11; printf(“y=%fn”,y);,方法二: if(x1) y= x; else if(x10) y= 2*x-1; else y=3*x-11; printf(“y=%fn”,y);,实验【32】,给出一个百分制成绩,要求输出成绩等级A,B,C,D,E。90分以上为A,60分以下为E,要求: 分别用if语句和switch语句实现。 输入一个负分数以及超过100分以上,不应该得到成绩,你应该如何修正?,内容提要:,4.1 while语句 4.2 do wh。

2、ile语句 4.3for 语句 4.4 与循环有关的控制语句 4.5程序举例 课后任务,本章要点:,建立循环程序设计的基本概念和逻辑思维 掌握C语言循环程序设计的方法,概述,1.引入循环控制语句的作用 当满足一定条件时,重复执行一段程序. 2.设置循环需要考虑的问题 循环初值; 循环条件的设置;循环体应包括的语句;循环条件的修改。,3.C语言中可用以下语句实现循环,(1)用while语句 (2)用dowhile语句 (3)用for语句,1. while循环语句的形式 while(表达式) 循环语句,先判断条件,后执行语句,表达式,语句,零,非零,2. 执行过程:,注意: 循环体若包含一个以上语。

3、句,应该用花括号括起来(使用复合语句。 循环体内,应注意设置修改循环条件的语句。否则循环无法终止。,4.1 while循环语句,此处无;,说明: 执行while循环语句时,如果表达式的值第一次计算就等于0,则循环体一次也不执行。 无限循环: while(1) 循环体; 发生下列情况之一时,while循环结束执行:,表达式的值为0 循环体内遇到break语句 循环体内遇到go to 语句,且与该go to语句配合使用的标号所指定的语句在本循环体外 循环体内遇到return语句,此时退出while循环后,执行的流程从包含该while语句的函数返回到调用函数,例2:求,main() int i=1,。

4、sum=0; while (i=100) sum=sum+i; i+; printf(%d,sum); ,1. dowhile循环语句的形式 do 循环体 while(条件表达式);,先执行语句,后判断条件,2. 执行过程,说明: (1) dowhile循环语句首先执行循环体,然后计算表达式并检查循环条件,所以循环体至少执行一次。 (2)退出dowhile循环的条件与退出while循环的条件相同,4.2 dowhile循环语句,此处有;,例4:用do-while型循环求:,main() int i=1, sum=0; do sum=sum+i; i+; while (i=100); print。

5、f(%d,sum); ,结论: 当while后的表达式为真时,while语句和dowhile语句的结果相同,否则不同。,main( ) int i , s=0; scanf(“%d”, ,main( ) int i , s=0; scanf(“%d”, ,输入:1 打印:55 输入:11 打印:0,输入:1 打印:55 输入:11 打印:11,一般形式:,for(表达式1;表达式2;表达式3) 循环体语句,执行流程:,4.3 for语句,1.先求解表达式1; 2.求解表达式2,若其值为真(非0),则执行循环体的内容,然后执行第3步。若为假(0),则结束循环,执行for语句下面一条语句。 3.若。

6、表达式为真,执行指定的语句后,求解表达式3。 4.返回第2步执行。,此处无;,for语句一般应用形式:,for( 循环变量赋初值; 循环条件; 循环变量增值) 循环体语句 ,说明: for语句中表达式1、表达式2、表达式3类型任意,都可省略,但分号;不可省 无限循环: for(;) for语句可以转换成while结构,表达式1; while(表达式2) 循环体语句; 表达式3; ,此处无;,例 用for循环求,#include main() int i,sum=0; for(i=1;i=100;i+) sum+=i; printf(%d,sum); ,例:#include main( ) in。

7、t i=0; for(i=0;i10;i+) putchar(a+i); ,运行结果:abcdefghij,例:#include main( ) int i=0; for(;i10;i+) putchar(a+i); ,例: #include main( ) int i=0; for(;i10;) putchar(a+(i+); ,例: #include main( ) int i=0; for(;i10;putchar(a+i),i+) ; ,省略表达式 1,省略表达式1、3,省略循环体,/*c4_8.c*/ main() int i,j,k; for(i=0,j=100;i=j;i+,j-。

8、) k=i+j; printf(%d+%d=%dn,i,j,k); ,/*c4_9.c*/ #include main() char c; for(;(c=getchar()!=n;) printf(%c ,c); ,/*c4_7.c*/ #include main() int i,c; for(i=0;(c=getchar()!=n;i+=3) printf(%c ,i+c); ,表达式 1、3为逗号表达式,结论:for语句的功能强大!,三种循环可互相嵌套,层数不限 外层循环可包含两个以上内循环,但不能相互交叉 嵌套循环的执行流程,for( ; ;) do while(); while() 。

9、. ,嵌套循环的跳转 禁止: 从外层跳入内层 跳入同层的另一循环 向上跳转,循环的嵌套- 在循环体内又包含一个循环结构,称为循环嵌套。,for( ; ; ) while( ) for循环体嵌套while循环体,for( ; ; ) for( ; ; ) for循环体嵌套for循环,do do while( ); while( ); do_while循环体 嵌套do_while循环,while( ) do while( ); while循环体嵌套 do_while循环,while( ) for( ; ; ) while循环体嵌套for循环,do for( ; ; ) while( ); do_w。

10、hile循环体嵌套for循环,打印九九乘法表,例 循环嵌套,输出九九表,/*c99乘法.c*/ #include stdio.h void main() printf(t 九九乘法表n); printf(t -n); for(int i=1;i=9;i+) for(int j=1;j=9;j+) printf(%d%d=%dt,i,j,i*j); printf(n); ,思考:打印上三角或下三角程序如何改动?,for(i=1;i10;i+) for(j=1;j=i;j+) printf(j=i)?%4dn:%4d,i*j);,几种循环的比较,三种循环均可处理同一问题; for和while语句为。

11、先判断后执行,do-while语句则先执行后判断; do-while和while 语句多用于循环次数不定的情况,循环次数确定的用for语句更方便; do-while语句更适合第一次肯定执行的情况; do-while和while语句只有一个表达式,用于控制循环是否进行。for语句有三个表达式,不仅可以控制循环是否进行,而且能为循环变量赋初值及不断修改其值。故for语句功能更强,更灵活。,用上述三种循环语句求,while语句:,n = 1;s = 0; while (n=100) s=s+n; n=n+1; ,n = 1; s = 0; do s = s+n; n = n+1; while(n=1。

12、00);,do-while语句:,for (n = 1,s = 0;n=100;n+) s=s+n;,for语句:,4.4.1 break语句 一般形式:break; 功能:在循环语句和switch语句中,终止并跳出循环体或开关体 说明: break只能终止并跳出最近一层的结构 break不能用于循环语句和switch语句之外的任何其它语句之中,4.4 break语句和continue语句,例 break举例:输出圆面积,面积大于100时停止,#include #define PI 3.14159 main() int r; float area; for(r=1;r100) break; p。

13、rintf(r=%d,area=%.2fn,r,area); ,例 break举例: 小写字母转换成大写字母,直至输入非小写字母字符。,/*ch6-5-2.c*/ #include main() char c; while(1) c=getchar(); if(c=a ,4.4.2 continue语句 一般形式:continue; 功能:结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断 说明: 仅用于循环语句中 continue 语句仅结束本次循环,但break语句则是结束整个循环过程。,例 求输入的十个整数中正整数的个数及其和与平均值,#include main()。

14、 int i,num=0,a; float sum=0; for(i=0;i10;i+) scanf(%d, ,分子:1,-1, 1,-1 分母:1, 3, 5, 7,4.5 程序举例,/*c4_6.c*/ #include #include 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); ,例4.6 用 公式求的近似值,直到最后一项的绝对值小于10-6为止,兔子繁殖规律,第几月 。

15、小兔子 中兔子 老兔子 兔子总数 1 1 0 0 1 2 0 1 0 1 3 1 0 1 2 4 1 1 1 3 5 2 1 2 5 6 3 2 3 8 7 5 3 5 13,例4.7 求Fibonacci (斐波纳契)数列:1,1,2,3,5,8,的前40个数。 F1=1 (n=1) F2=1 (n=2) Fn=Fn-1+Fn-2 (n3),/*c4_7.c*/ #include main() long int f1,f2; int i; f1=1; f2=1; for(i=1;i=20;i+) printf(%12ld %12ld ,f1,f2); if(i%2=0) printf(n); f1=f1+f2; f2=f2+f1; ,例4.8 判断m是否素数,/*c4_8.c*/ #include #include main() int m,i,k; scanf(%d, ,课后延伸 : 求100200间的全部素数(课后作业),例4.9 译密码,例如: Hello,world! 译成密码:Lipps,asvph!,/*c4_10.c*/ #include main() char c; while(c=getchar()!=n) if(c=a ,谢谢光临。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值