第4章 简单程序设计.ppt

上传人:asd****56 文档编号:87081773 上传时间:2023-04-16 格式:PPT 页数:108 大小:468KB
返回 下载 相关 举报
第4章 简单程序设计.ppt_第1页
第1页 / 共108页
第4章 简单程序设计.ppt_第2页
第2页 / 共108页
点击查看更多>>
资源描述

《第4章 简单程序设计.ppt》由会员分享,可在线阅读,更多相关《第4章 简单程序设计.ppt(108页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构第第4章章程序控制结构程序控制结构4.1 C4.1 C语言的执行语句语言的执行语句4.2 4.2 顺序结构顺序结构4.3 4.3 选择结构选择结构4.4 4.4 循环结构循环结构1 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构4.1C C语言的执行语句语言的执行语句C程序组成程序组成C C程序程序源程序文件源程序文件1 1源程序文件源程序文件2 2源程序文件源程序文件3 3预处理命令预处理命令函数函数n n函数函数1 1数据声明数据声明函数首部函数首部函数体函数体数据声明数据声明执行语句执行语句2 C

2、语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构4.1C语言的执行语句语言的执行语句C语句的分类:语句的分类:1.表达式语句表达式语句2.空语句空语句3.复合语句复合语句4.控制语句控制语句3 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构表达式语句表达式语句赋值语句:变量赋值语句:变量=表达式表达式;功能:将功能:将“=”右侧表达式的值赋给左右侧表达式的值赋给左侧变量的值。侧变量的值。函数调用语句;函数调用语句;例如例如putchar(ch);4 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构空语句和复合语句空语句和复合语句空语句

3、:仅由一个分号构成的语句,在执行时空语句:仅由一个分号构成的语句,在执行时不产生任何指令。不产生任何指令。复合语句:用一对花括号复合语句:用一对花括号将多个语句括起来将多个语句括起来构成一个整体。构成一个整体。注意:注意:1)复合语句中的每个语句必须以分号;结束)复合语句中的每个语句必须以分号;结束但右花括号但右花括号后不能有分号后不能有分号2)复合语句中可以有自己的数据说明)复合语句中可以有自己的数据说明5 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构控制语句控制语句条件选择语句:条件选择语句:if开关分支语句:开关分支语句:switch当循环语句:当循环语句:whi

4、le直到循环语句:直到循环语句:dowhile计数循环语句:计数循环语句:for中止本次循环语句:中止本次循环语句:continue中止整个循环语句:中止整个循环语句:break函数返回语句:函数返回语句:return无条件转移语句:无条件转移语句:goto6 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构顺序结构顺序结构顺序结构程序:由两个或两个以上的语句组成,顺序结构程序:由两个或两个以上的语句组成,先执行先执行A操作,然后再执行操作,然后再执行B操作。操作。传统流程图传统流程图N-S流程图流程图 A B AB7 C语言语言程序设计程序设计 第第4 4章章 程序控制结

5、构程序控制结构顺序结构程序设计举例顺序结构程序设计举例例例4.1输入任意两个整数,求它们的和及平均值。要求平输入任意两个整数,求它们的和及平均值。要求平均值取两位小数输出。均值取两位小数输出。#includevoidmain()intnum1,num2;floatsum,aver;printf(Pleaseinputtwointegers:n);scanf(%d,%d,&num1,&num2);sum=(float)num1+num2;/*求累计和求累计和*/aver=sum/2.0;/*求平均值求平均值*/printf(sum=%.0f,aver=%.2fn,sum,aver);8 C语言语

6、言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构顺序结构程序设计举例顺序结构程序设计举例例例4.2给定一个三位正整数,分别输出它的个位数、十位数给定一个三位正整数,分别输出它的个位数、十位数和百位数。和百位数。#includevoidmain()intm,m0,m1,m2;printf(Inputanumber(100999):);scanf(%d,&m);m0=m%10;m1=(m/10)%10;m2=m/100;printf(Thethreedigitsare);printf(%d,%d,%dn,m0,m1,m2);9 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程

7、序控制结构顺序结构程序设计举例顺序结构程序设计举例例例4.4求方程求方程ax2+bx+c=0的根。的根。a、b、c由键盘输入,由键盘输入,a0且且b2-4ac0。#include#includevoidmain()floata,b,c,d,x1,x2;printf(Inputa,b,c:);scanf(%f,%f,%f,&a,&b,&c);d=b*b-4*a*c;/*求判别式的值赋给求判别式的值赋给d*/x1=(-b+sqrt(d)/(2*a);x2=(-b-sqrt(d)/(2*a);printf(x1=%.4fnx2=%.4fn,x1,x2);10 C语言语言程序设计程序设计 第第4 4章

8、章 程序控制结构程序控制结构4.3选择结构选择结构C语言的选择控制结构语句有:语言的选择控制结构语句有:if语句和语句和switch语句语句if语句是用来判断所给定的条件是否满语句是用来判断所给定的条件是否满足,根据判定的结果足,根据判定的结果(真或假真或假)决定执行决定执行给定的某种操作之一。给定的某种操作之一。11 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构if语句的形式语句的形式1单分支结构单分支结构格式格式:if(表达式表达式)语句语句执行过程:执行过程:语句语句成立成立表达式表达式入口入口入口入口出口出口出口出口不成立不成立12 C语言语言程序设计程序设计

9、第第4 4章章 程序控制结构程序控制结构if语句举例语句举例1例例输入两个实数,按升序输出两个实数。输入两个实数,按升序输出两个实数。解法一:解法一:#includevoidmain()floata,b;scanf(%f%f,&a,&b);if(ab)printf(%f,%fn,b,a);单边条件单边条件(条件判断(条件判断两次)两次)13 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构if语句的形式语句的形式2双分支结构双分支结构格式格式:if(表达式表达式)语句语句1else语句语句2执行过程:执行过程:不成立不成立语句语句1语句语句2成立成立表达式表达式入口入口入口

10、入口出口出口出口出口14 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构if语句举例语句举例1例例输入两个实数,按升序输出两个实数。输入两个实数,按升序输出两个实数。解法二:解法二:#includevoidmain()floata,b;scanf(%f%f,&a,&b);if(ab)printf(%f,%fn,b,a);elseprintf(%f,%fn,a,b);双边条件双边条件(条件判断(条件判断一次)一次)15 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构if语句举例语句举例1解法三:解法三:#includevoidmain()floata,

11、b,t;scanf(%f%f,&a,&b);if(ab)t=a;a=b;b=t;/*两个变量交换数据两个变量交换数据*/printf(%f,%fn,a,b);单边条件(条单边条件(条件判断一次)件判断一次)3个语句用花括号个语句用花括号括起来构成括起来构成1个复个复合语句合语句若不使用复合语句,若不使用复合语句,则可用则可用t=a,a=b,b=t;16 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构if语句的形式语句的形式3多分支结构多分支结构格式格式:if(表达式表达式1)语句语句1elseif(表达式表达式2)语句语句2elseif(表达式表达式3)语句语句3:els

12、eif(表达式表达式n)语句语句nelse语句语句n+1假假语句语句1真真表达式表达式1 1表达式表达式2 2表达式表达式3 3表达式表达式n n语句语句n+1语句语句n语句语句3语句语句2真真真真真真假假假假假假入口入口入口入口出口出口出口出口17 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构if语句举例语句举例2例例根据所输入的根据所输入的x之值,求之值,求解法一:用多分支解法一:用多分支if语句语句#includevoidmain()intx,y;scanf(%d,&x);if(x0)y=1;elseif(x=0)y=0;elsey=-1;printf(x=%d,

13、y=%dn,x,y);1(x0)y=0(x=0)-1(x0)18 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构if语句举例语句举例2解法二:用多个单分支解法二:用多个单分支if语句语句#includevoidmain()intx,y;scanf(%d,&x);if(x0)y=1;if(x=0)y=0;if(x0)y=-1;printf(x=%d,y=%dn,x,y);19 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构if语句举例语句举例2解法三:用双分支解法三:用双分支if语句的嵌套语句的嵌套#includevoidmain()intx,y;sc

14、anf(%d,&x);if(x=0)if(x0)y=1;elsey=0;elsey=-1;printf(x=%d,y=%dn,x,y);这是一个这是一个嵌套结构嵌套结构20 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构if语句的嵌套语句的嵌套在在if语句中又包含一个或多个语句中又包含一个或多个if语句语句,称为称为if语句语句的嵌套的嵌套一般形式一般形式:if(条件条件1)if(条件条件2)语句语句1else语句语句2elseif(条件条件3)语句语句3else语句语句4if与与else的配对关系:从最内层开始的配对关系:从最内层开始,else总是与总是与它上面最近的且

15、尚未配对的它上面最近的且尚未配对的if配对。配对。为了使逻辑关系清晰,为了使逻辑关系清晰,建议采用建议采用“分层缩进书分层缩进书写格式写格式”。21 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构在内嵌在内嵌if语句中要注意配对关系语句中要注意配对关系结合右图,观察以下程序:结合右图,观察以下程序:#includevoidmain()intx,y;scanf(%d,&x);y=-1;if(x!=0)if(x0)y=1;elsey=0;printf(x=%d,y=%dn,x,y);输入输入0输出结果:输出结果:x=0,y=-1真正的配对真正的配对结果错误结果错误假假y=1真

16、真 x!=0 x!=0 x0 x0y=-1y=0真真假假22 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构在内嵌在内嵌if语句中要注意配对关系语句中要注意配对关系在内嵌在内嵌if语句中加花括号改变配对关系语句中加花括号改变配对关系#includevoidmain()intx,y;scanf(%d,&x);y=-1;if(x!=0)if(x0)y=1;elsey=0;printf(x=%d,y=%dn,x,y);结论:如果内层结论:如果内层if语句为单边结构,要加花括号语句为单边结构,要加花括号花括号改变配花括号改变配对关系对关系结果正确结果正确正确配对正确配对23 C语

17、言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构条件运算符的应用条件运算符的应用例:输入一个字符,判断它是否大写字母,若是例:输入一个字符,判断它是否大写字母,若是将其转换为小写;否则原样输出。将其转换为小写;否则原样输出。#includevoidmain()charch;scanf(%c,&ch);ch=(ch=A&ch=Z)?ch+32:ch;printf(%cn,ch)24 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构switch语句(多分支选择语句,开关语句)语句(多分支选择语句,开关语句)switch语句的格式语句的格式:switch(表达式表

18、达式)case常量表达式常量表达式1:语句语句1;break;case常量表达式常量表达式2:语句语句2;break;case常量表达式常量表达式3:语句语句3;break;case常量表达式常量表达式n:语句语句n;break;default:语句语句n+1执行过程:执行过程:先计算先计算switch后面表达式的值,后面表达式的值,如果与某个如果与某个case后的常量值相等,则执行其后后的常量值相等,则执行其后的语句;若所有的语句;若所有case中的常量值都不能与之匹中的常量值都不能与之匹配,则执行配,则执行default后的语句后的语句n+1。根据此表达式的根据此表达式的值找入口值找入口一

19、般为常量,一般为常量,TC要要求为求为int或或char型型25 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构switch语句流程图(无语句流程图(无break语句)语句)注意注意:执行完入口语句后执行完入口语句后,则自动转到下一个则自动转到下一个case后面的语句执行;后面的语句执行;表达式表达式语句语句1语句语句2语句语句3语句语句n语句语句n+1=常量常量3=常量常量2=常量常量1=其它其它=常量常量n26 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构switch语句流程图(有语句流程图(有break语句)语句)注意注意:如果语句中有如果语

20、句中有break;,则执行完一个入,则执行完一个入口语句后跳出口语句后跳出switch选择结构。选择结构。表达式表达式语句语句1语句语句2语句语句3语句语句n语句语句n+1=常量常量3=常量常量2=常量常量1=其它其它=常量常量n27 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构switch语句举例语句举例例:输入成绩等级例:输入成绩等级,打印出百分制分数段。打印出百分制分数段。#includevoidmain()charc;printf(Pleaseenteracharn);c=getchar();c=(c=a&c=z)?c-32:c;switch(c)caseA:p

21、rintf(“90100n);break;caseB:printf(“8089n);break;caseC:printf(“7079n);break;caseD:printf(“6069n);break;caseE:printf(60n);break;default:printf(errorn);注意:注意:case后面应为字后面应为字符常量符常量A、B等,不等,不能为变量能为变量A、B等。等。28 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构switch语句举例(无语句举例(无break语句的效果)语句的效果)例例4.9:输入成绩等级:输入成绩等级,打印出百分制分数段

22、。打印出百分制分数段。#includevoidmain()charc;printf(Pleaseenteracharn);c=getchar();c=(c=a&c=z)?c-32:c;switch(c)caseA:printf(“90100n);caseB:printf(“8089n);caseC:printf(“7079n);caseD:printf(“6069n);caseE:printf(60n);default:printf(errorn);去掉去掉break语句,程序运语句,程序运行后,从键盘上输入行后,从键盘上输入b,则程序运行的,则程序运行的顺序和结果如下:顺序和结果如下:808

23、97079606960error29 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构switch语句使用说明语句使用说明各个分支中如果没有各个分支中如果没有break语句,则执行了相语句,则执行了相应的操作后,会自动转到下一个应的操作后,会自动转到下一个case后面的语后面的语句执行。句执行。case后面的常量值不能相同。后面的常量值不能相同。各个分支中允许有多个语句,可以不用各个分支中允许有多个语句,可以不用括起括起来。来。各个各个case和和default分支的顺序可以改变,但分支的顺序可以改变,但default总是最后考虑的入口。如果各个分支中总是最后考虑的入口。如

24、果各个分支中均有均有break语句,各个分支的出现次序不影响语句,各个分支的出现次序不影响执行结果。执行结果。可以使多个可以使多个case共用同一组执行语句。共用同一组执行语句。30 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构例例4.10输入百分制成绩,要求输出相应的五级制成绩。输入百分制成绩,要求输出相应的五级制成绩。百分制成绩与五级制成绩之间的转换标准为:百分制成绩与五级制成绩之间的转换标准为:90分以分以上为上为“A”,80-89分为分为“B”,70-79分为分为“C”,60-69分为分为“D”,60分以下为分以下为“E”。#includevoidmain()i

25、ntscore;scanf(%d,&score);switch(score/10)case10:case9:printf(An);break;case8:printf(Bn);break;case7:printf(Cn);break;case6:printf(Dn);break;default:printf(En);switch语句举例语句举例31 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构上题也可用多分支上题也可用多分支if语句实现,见课本语句实现,见课本P71例例4.7。#includevoidmain()intscore;scanf(%d,&score);if(

26、score=90)printf(An);elseif(score=80)printf(Bn);elseif(score=70)printf(Cn);elseif(score=60)printf(Dn);elseprintf(En);32 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构选择结构程序设计举例选择结构程序设计举例判断字母、数字判断字母、数字分段函数值的计算分段函数值的计算三个数中求最大数三个数中求最大数求三角形面积求三角形面积判断闰年判断闰年计算器程序计算器程序求一元二次方程的根求一元二次方程的根对三个数进行升序排序对三个数进行升序排序33 C语言语言程序设计程

27、序设计 第第4 4章章 程序控制结构程序控制结构例例1:从键盘上输入一个字符判断是数字、字母:从键盘上输入一个字符判断是数字、字母或其它字符。课本或其它字符。课本P81例例4.13#includevoidmain()charc;c=getchar();if(c=A&c=a&c=0&c=9)printf(digitn);elseprintf(othern);34 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构例例2:计算分段函数。课本:计算分段函数。课本P73例例4.8#includevoidmain()floatx,y;scanf(%f,&x);if(x0)y=0;els

28、eif(xmax,则,则max改为改为b;v将将c与与max进行比较,若进行比较,若cmax,则,则max改为改为c.于是于是变量变量max中存放的就是三个数中的最大数。中存放的就是三个数中的最大数。36 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构解解1)#includevoidmain()inta,b,c,t;scanf(%d,%d,%d,&a,&b,&c);if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;printf(“max=%dn,a);解解2)#includevoidmain()inta,b,c,max;scanf(%d,%d,%d,

29、&a,&b,&c);max=a;if(bmax)max=b;if(cmax)max=c;printf(“max=%dn,max);37 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构例:对三个数进行升序排序例:对三个数进行升序排序思路:思路:1.先将先将a、b进行比较,将二者之中的较小者放入进行比较,将二者之中的较小者放入变量变量a中,较大者放入中,较大者放入b中,这样中,这样a中就是中就是a、b中较小数;中较小数;2.再将变量再将变量a与变量与变量c进行比较,将进行比较,将a、c中的较小中的较小者放到者放到a中,较大者放到中,较大者放到c中,这样,变量中,这样,变量a中

30、存中存放的就一定是三个数中的最小数;放的就一定是三个数中的最小数;3.最后将最后将b和和c进行比较,将二者之中较小者放入进行比较,将二者之中较小者放入变量变量b中,较大者放入变量中,较大者放入变量c中,就完成了对三中,就完成了对三个数的升序排序。个数的升序排序。也就是说,对三个数进行排序,需要进行也就是说,对三个数进行排序,需要进行3次比较。次比较。38 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构#includevoidmain()inta,b,c,t;scanf(%d,%d,%d,&a,&b,&c);if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c

31、=t;if(bc)t=b;b=c;c=t;printf(%d,%d,%dn,a,b,c);39 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构例例4输入三角形三边长,求三角形面积。课本输入三角形三边长,求三角形面积。课本P82例例4.14#include#includevoidmain()floata,b,c,s,area;scanf(%f,%f,%f,&a,&b,&c);if(a+bc&a+cb&b+ca)s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c);printf(area=%7.2fn,area);elseprintf(Notat

32、riangle.n);40 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构例例5:判断闰年算法,闰年的条件:判断闰年算法,闰年的条件:能被能被4整除,整除,但不能被但不能被100整除;整除;能被能被100整除,又能被整除,又能被400整除。整除。否否输出输出year不不是闰年是闰年 是是year%4!=0 year%100!=0 year%400!=0 输出输出year是是闰年闰年 输出输出year不不是闰年是闰年 输出输出year是是闰年闰年 是是是是否否否否41 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构解解1)用多边)用多边if语句实现语句

33、实现#includevoidmain()intyear;scanf(%d,&year);if(year%4!=0)printf(%disnotaleapyearn,year);elseif(year%100!=0)printf(%disaleapyearn,year);elseif(year%400!=0)printf(%disnotaleapyearn,year);elseprintf(%disaleapyearn,year);42 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构解解2)多边)多边if语句语句+用变量用变量leap标识是否闰年标识是否闰年#include

34、voidmain()intyear,leap;scanf(%d,&year);if(year%4!=0)leap=0;elseif(year%100!=0)leap=1;elseif(year%400!=0)leap=0;elseleap=1;if(leap)printf(%disaleapyearn,year);elseprintf(%disnotaleapyearn,year);43 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构解解3)直接用复合条件判断闰年)直接用复合条件判断闰年#includevoidmain()intyear,leap;scanf(%d,&ye

35、ar);if(year%4=0&year%100!=0)|(year%400=0)printf(%disaleapyearn,year);elseprintf(%disnotaleapyearn,year);44 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构例例6计算器程序。用户输入运算数和四则运算符,输出运计算器程序。用户输入运算数和四则运算符,输出运算结果。当输入运算符不是算结果。当输入运算符不是“+”、“-”、“*”或或“/”时提示出错,当输入除数为时提示出错,当输入除数为0时也提示出错。时也提示出错。课本课本P80例例4.12#include#includevo

36、idmain()floata,b;charc;scanf(%f%c%f,&a,&c,&b);switch(c)case+:printf(=%fn,a+b);break;case-:printf(=%fn,a-b);break;case*:printf(=%fn,a*b);break;case/:if(b=0)printf(Divisionbyzero!n);elseprintf(=%fn,a/b);break;default:printf(Operatorerror!n);45 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构例例7求一元二次方程的根算法。课本求一元二次方程

37、的根算法。课本P85例例4.17输入输入a,b,ca=0输出输出“非非二次方程二次方程”disc=b2-4acdisc=0输出两个实根输出两个实根输出两个复根输出两个复根46 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构#includevoidmain()floata,b,c,disc,x1,x2,real,imag;scanf(%f,%f,%f,&a,&b,&c);if(fabs(a)=1e-6)printf(“notaquadraticn);elsedisc=b*b-4*a*c;if(fabs(disc)0)x1=(-b+sqrt(disc)/(2*a);x2=(-

38、b-sqrt(disc)/(2*a);printf(distinctrealroots:%8.4fand%8.4f,x1,x2);elsereal=-b/(2*a);imag=sqrt(-disc)/(2*a);printf(complexroots:n);printf(%8.4f+%8.4fin,real,imag);printf(%8.4f-%8.4fin,real,imag);表示表示a等于等于0表示表示disc等于等于0注意注意a=0这种这种表示不够准确!表示不够准确!47 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构4.4循环结构循环结构C语言的循环结构共有下

39、列三种:语言的循环结构共有下列三种:vwhile语句语句vdo-while语句语句vfor语句语句48 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构4.4循环结构循环结构举例举例求求1100之间所有整数的和之间所有整数的和开始开始0sum1ii=100sum+isumi+1i否否是是输出输出sum的值的值;开始开始0sum1ii=100sum+isumi+1i否否是是输出输出sum的值的值;当当型型循循环环直直到到型型循循环环49 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构while语句语句格式:格式:while(表达式表达式)语句语句语句语句

40、循环体循环体假假(0)真真(非非0)表达式表达式注:循环体可能一注:循环体可能一次也不执行。次也不执行。当表达式为真时当表达式为真时语句语句(循环体)(循环体)50 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构while语句语句例例4.18用用while语句求语句求1100之间整数和之间整数和#includevoidmain()inti,sum;sum=0;i=1;while(i=100)sum=sum+i;i+;printf(i=%d,sum=%dn,i,sum);语句语句sum=sum+i;和语句和语句i+;能否能否改变位置?程序的哪些地方应作改变位置?程序的哪些地

41、方应作相应的改动?相应的改动?如果在如果在while语句之前对变量语句之前对变量sum赋初值为赋初值为1,是否可以?程序的哪,是否可以?程序的哪些地方应作相应的改动?些地方应作相应的改动?循循环环51 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构while语句语句例例4.19根据公式计算圆周率根据公式计算圆周率的值。的值。部分程序:部分程序:inti=1,n;doublepi=0;scanf(%d,&n);while(i=n)pi+=1.0/(i*i);i+;pi=sqrt(pi*6);52 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构do-wh

42、ile语句语句格式:格式:do语句语句while(表达式表达式);语句语句循环体循环体假假(0)真真(非非0)表达式表达式 循环体循环体当表达式为真当表达式为真注:循环体至少执行一次。注:循环体至少执行一次。用用do-while语句实语句实现直到现直到循环循环53 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构do-while语句语句例例4.18用用do-while语句求语句求100以内正整数的和以内正整数的和#includevoidmain()inti,sum;sum=0;i=1;dosum=sum+i;i+;while(i1e-6);pi=pi*4;printf(pi

43、=%10.6fn,pi);55 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构for语句语句格式格式:for(表达式表达式1;表达式表达式2;表达式表达式3)语句语句语句语句(循环体循环体)假假(0)真真(非非0)表达式表达式2求解表达式求解表达式1求解表达式求解表达式3实质是当型循环!实质是当型循环!56 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构for语句语句在在for语句中,通常表达式语句中,通常表达式1用来为循环用来为循环变量赋初值;表达式变量赋初值;表达式2一般用来设置循环一般用来设置循环条件;表达式条件;表达式3一般用于循环变量增值。

44、一般用于循环变量增值。for语句的最常用格式:语句的最常用格式:for(for(循环变量赋初值循环变量赋初值;循环条件循环条件;循环变量增值循环变量增值)语句语句57 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构for语句语句例例4.18用用for语句求语句求1100之间的整数之和之间的整数之和#includevoidmain()inti,sum;sum=0;for(i=1;i=100;i+)sum=sum+i;printf(i=%d,sum=%dn,i,sum);58 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构for语句语句例例4.26统计从

45、键盘输入一行字符的个数,以回车统计从键盘输入一行字符的个数,以回车结束。结束。#includevoidmain()intn;charc;printf(Inputastring:n);for(n=0;(c=getchar()!=n;n+);printf(%d,n);59 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构for语句语句例例4.27编程输出编程输出“斐波那契数列斐波那契数列”的前的前20项。项。#includevoidmain()inti,x1=1,x2=1;for(i=1;i=10;i+)printf(%10d%10d,x1,x2);if(i%2=0)print

46、f(n);x1=x1+x2;x2=x2+x1;60 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构for语句的灵活使用语句的灵活使用循环之前的赋初值语句可以放在表达式循环之前的赋初值语句可以放在表达式1中,中,中间用逗号间隔。中间用逗号间隔。表达式表达式3可缺省(但其前的分号不能省略),可缺省(但其前的分号不能省略),将表达式将表达式3作为语句放到循环体的末尾。作为语句放到循环体的末尾。循环体中的内容可以放在表达式循环体中的内容可以放在表达式3中,但要在中,但要在for语句圆括号的后面加一个分号。语句圆括号的后面加一个分号。表达式表达式1、表达式、表达式3可同时缺省,但表

47、达式可同时缺省,但表达式2前前后的分号都不能省略。后的分号都不能省略。61 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构for语句的灵活使用语句的灵活使用表达式表达式2可缺省,放在循环体之中,但可缺省,放在循环体之中,但for语句语句中的两个分号都不能省略;且判断与退出放在中的两个分号都不能省略;且判断与退出放在循环体中。循环体中。inti,sum;sum=0;for(i=1;i+)if(i=100)sum=sum+i;elsebreak;/*退出循环退出循环*/printf(i=%d,sum=%dn,i,sum);62 C语言语言程序设计程序设计 第第4 4章章 程序

48、控制结构程序控制结构几种循环的比较几种循环的比较1)while循环、循环、dowhile循环、循环、for循环都可以用循环都可以用来处理同一个问题,一般可以互相代替。来处理同一个问题,一般可以互相代替。2)在)在while和和do-while循环的循环体中,应包括循环的循环体中,应包括使循环趋于结束的语句。使循环趋于结束的语句。3)用)用while和和do-while循环时,循环变量初始化循环时,循环变量初始化的操作应在的操作应在while和和do-while语句之前完成,语句之前完成,而而for语句可以在表达式语句可以在表达式1中实现循环变量的初中实现循环变量的初始化。始化。4)三种循环均可

49、用)三种循环均可用break语句跳出循环,用语句跳出循环,用continue语句结束本轮循环。语句结束本轮循环。5)for语句功能最强。语句功能最强。63 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构break语句和语句和continue语句语句break语句语句v格式格式:break;v功能功能:提前结束循环提前结束循环,从循环体中无条件跳从循环体中无条件跳转到循环语句后面执行。转到循环语句后面执行。v可用于可用于switch语句和循环结构中。语句和循环结构中。continue语句语句v格式格式:continue;v功能功能:结束本次循环结束本次循环,即在本次循环中,

50、不即在本次循环中,不再执行循环体中再执行循环体中continue后面的语句。后面的语句。v只能用于循环结构。只能用于循环结构。64 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构break语句的使用语句的使用例例4.28将数字将数字512表示成两个数的和,这两个数分别为表示成两个数的和,这两个数分别为15和和13的倍数。的倍数。#includevoidmain()inti;for(i=1;i+)if(!(512-i*15)%13)break;printf(%d+%d=512n,i*15,512-i*15);!(512-i*15)%13)等价等价于于(512-i*15)%1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁