《最新C语言-程序控制结构(共113张PPT课件).pptx》由会员分享,可在线阅读,更多相关《最新C语言-程序控制结构(共113张PPT课件).pptx(113页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构第第4章章 程序控制程序控制(chngxkngzh)结构结构教学目标:教学目标:C C语言的执行语句;三种基本结语言的执行语句;三种基本结构程序的设计方法构程序的设计方法(fngf)(fngf)及算法举例及算法举例重点:重点:ifif语句和语句和switchswitch语句;语句;whilewhile语句、语句、do-whiledo-while语句、语句、forfor语句;使用循环实现穷举、语句;使用循环实现穷举、迭代和递推等算法;循环结构的嵌套。迭代和递推等算法;循环结构的嵌套。 难点:使用循环实现穷举、迭代和递推等算难点
2、:使用循环实现穷举、迭代和递推等算法;循环结构的多重嵌套法;循环结构的多重嵌套 1第一页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构第第4章章 程序控制程序控制(chngxkngzh)结构结构4.1 4.1 C C语言的执行语句语言的执行语句4.2 4.2 顺序顺序(shnx)(shnx)结构结构4.3 4.3 选择结构选择结构l上机任务上机任务4 44.4 4.4 循环结构循环结构v上机任务上机任务5 5v上机任务上机任务6 6v上机任务上机任务7 72第二页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构4
3、.1 C C语言的执行语言的执行(zhxng)(zhxng)语句语句C程序程序(chngx)组成组成3第三页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构4.1 C语言的执行语言的执行(zhxng)语句语句C语句的分类:语句的分类:v 表达式语句表达式语句v 空语句空语句v 复合复合(fh)语句语句v 控制语句控制语句4第四页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构表达式语句表达式语句(yj)赋值语句:变量赋值语句:变量 = 表达式表达式 ; 功能:将功能:将“=”右侧右侧(yu c)表达式的值赋给左侧表
4、达式的值赋给左侧变量的值。变量的值。函数调用语句;函数调用语句; 如:如: putchar(ch);5第五页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构空语句和复合空语句和复合(fh)语句语句空语句:仅由一个分号构成的语句,在执行时空语句:仅由一个分号构成的语句,在执行时不产生任何指令。不产生任何指令。复合语句:用一对花括号复合语句:用一对花括号 将多个语句括起来将多个语句括起来构成一个整体。构成一个整体。v复合语句中的每个语句必须复合语句中的每个语句必须(bx)以分号结束,但右花以分号结束,但右花括号括号后不能有分号后不能有分号v复合语句中可以有自
5、己的数据说明复合语句中可以有自己的数据说明6第六页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构控制控制(kngzh)语句语句条件选择条件选择(xunz)语句:语句:if开关分支语句:开关分支语句:switch当循环语句:当循环语句:while直到循环语句:直到循环语句:do while计数循环语句:计数循环语句:for中止本次循环语句:中止本次循环语句:continue中止整个循环语句:中止整个循环语句:break函数返回语句:函数返回语句:return无条件转移语句:无条件转移语句:goto7第七页,共一百一十三页。 C语言语言程序设计程序设计 第
6、第4 4章章 程序控制结构程序控制结构4.2 顺序顺序(shnx)结构结构顺序结构程序:由两个或两个以上的语句组成,顺序结构程序:由两个或两个以上的语句组成,先执行先执行 A 操作操作(cozu),然后再执行,然后再执行 B 操作操作(cozu)。 传统流程图传统流程图 N-S流程图流程图 A B A B8第八页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构顺序顺序(shnx)结构程序设计举例结构程序设计举例 例例4.1 输入任意两个输入任意两个(lin )整数,求它们的和及平均值。要求平整数,求它们的和及平均值。要求平均值取两位小数输出。均值取两位小
7、数输出。#include void main() int num1,num2; float sum,aver; printf(“Please input two integers,such as(5,3): n); scanf(%d,%d,&num1,&num2); sum=(float)num1+num2; /*求累计和求累计和*/ aver=sum/2.0; /*求平均值求平均值*/ printf(sum=%.0f,aver=%.2fn,sum,aver);9第九页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构顺序结构程序设计顺序结构程序设计(ch
8、n x sh j)举例举例#include void main() int m,m0,m1,m2; printf(Input a number(100999): ); scanf(%d,&m); m0=m%10; m1=(m/10)%10; m2=m/100; printf(“The three digits are:); printf(%d,%d,%d n,m0,m1,m2);例例4.2 给定一个给定一个(y )三位正整数,分别输出它的个位数、十位三位正整数,分别输出它的个位数、十位数和百位数。数和百位数。10第十页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构
9、程序控制结构顺序结构顺序结构(jigu)程序设计举例程序设计举例例例4.4 求方程求方程(fngchng)ax2+bx+c=0的根。的根。a、b、c由键盘输入,由键盘输入,假设假设a0且且b2-4ac0。#include #include void main() float a,b,c,d,x1,x2; printf(Input three floats(a,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
10、(x1=%.4fnx2=%.4fn,x1,x2);11第十一页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构4.3 选择选择(xunz)结构结构 C语言的选择控制结构语句有:语言的选择控制结构语句有:if语句和语句和switch语句语句if 语句是用来判断所给定的条件是否满足,根语句是用来判断所给定的条件是否满足,根据据(gnj)判定的结果判定的结果(真或假真或假)决定执行给定的某决定执行给定的某种操作之一。种操作之一。12第十二页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构if 语句的形式语句的形式(xng
11、sh)1单分支结构单分支结构 格式格式: if (表达式表达式) 语句语句(yj) 执行过程:执行过程:语句语句成立成立表达式表达式不成立不成立13第十三页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构if 语句的形式语句的形式(xngsh)2双分支结构双分支结构 格式格式: if (表达式表达式) 语句语句(yj)1 else 语句语句2 执行过程:执行过程:不成立不成立语句语句1语句语句2成立成立表达式表达式14第十四页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构if语句语句(yj)举例举例1例例4.6:
12、 输入两个输入两个(lin )实数,按升序输出两个实数,按升序输出两个(lin )实数。实数。解法一:解法一:#include void main( ) float a,b,t; scanf(%f%f,&a,&b); if ( ab) printf(%f,%fn,b,a);单边条件单边条件(tiojin)(条件(条件(tiojin)判断两次)判断两次)15第十五页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构if语句语句(yj)举例举例1解法解法(ji f)二:二:#include void main ( ) float a,b; scanf(%f%f
13、,&a,&b); if (ab) printf(%f, %fn,b,a); else printf(%f,%fn,a,b); 双边条件双边条件(tiojin)(条件(条件(tiojin)判断一判断一次)次)16第十六页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构if语句语句(yj)举例举例1解法三:解法三:#include void main( ) float a,b,t; scanf(%f%f,&a,&b); if( ab) t=a; a=b; b=t; /*两个两个(lin )变量交换数据变量交换数据*/ printf(%f,%fn,a,b);单
14、边条件单边条件(tiojin)(条件(条件(tiojin)判断一判断一次)次)3个语句用花括号括个语句用花括号括起来构成起来构成1个复合语个复合语句句若不使用复合语句,若不使用复合语句,则可用则可用t=a, a=b, b=t; 17第十七页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构if 语句的形式语句的形式3多分支多分支(fnzh)结构结构 格式格式(g shi): if (表达式表达式1) 语句语句1 else if (表达式表达式2) 语句语句2 else if (表达式表达式3) 语句语句3 : : else if (表达式表达式n) 语句语
15、句n else 语句语句n+1假假语句语句1真真表达式表达式1 1表达式表达式2 2表达式表达式3 3表达式表达式n n语句语句n+1语句语句n语句语句3语句语句2真真真真真真假假假假假假18第十八页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构if语句语句(yj)举例举例2 解法一:用多分支解法一:用多分支(fnzh)if 语句语句 #include void main ( ) int x,y; scanf(%d,&x); if(x0) y=1; else if(x=0) y=0; else y=-1; printf(x=%d,y=%dn,x,y);
16、 1 (x0)y= 0 (x=0) -1 (x0)例例4.8:根据:根据(gnj)所输入的所输入的x之值,求之值,求19第十九页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构if语句语句(yj)举例举例2解法二:用多个单分支解法二:用多个单分支(fnzh)if 语句语句#include void main ( ) int x,y; scanf(%d,&x); if(x0) y=1; if(x=0) y=0; if(x0) y=-1; printf(x=%d,y=%dn,x,y); 20第二十页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章
17、章 程序控制结构程序控制结构if语句语句(yj)举例举例2解法三:用双分支解法三:用双分支(fnzh)if 语句的嵌套语句的嵌套 #include void main ( ) int x,y; scanf(%d,&x); if (x=0) if (x0) y=1; else y=0; else y=-1; printf(x=%d,y=%dn,x,y); 这是一个这是一个(y )嵌套嵌套结构结构21第二十一页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构if 语句语句(yj)的嵌套的嵌套 在在if 语句语句(yj)中又包含一个或多个中又包含一个或多个if
18、 语句语句(yj),称为称为if 语句语句(yj)的嵌套的嵌套 一般形式一般形式: if (条件条件1 ) if (条件条件2 ) 语句语句1 else 语句语句2 else if (条件条件3) 语句语句3 else 语句语句4if 与与 else 的配对关系:从最内层开始的配对关系:从最内层开始, else 总是与总是与它上面最近的且尚未配对的它上面最近的且尚未配对的 if 配对。配对。 为了使逻辑关系清晰,建为了使逻辑关系清晰,建议议(jiny)采用采用“分层缩进书分层缩进书写格式写格式”。22第二十二页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制
19、结构在内嵌在内嵌if语句语句(yj)中要注意配对关系中要注意配对关系 结合右图,观察结合右图,观察(gunch)以下程序,能否实现例以下程序,能否实现例4.8的功能:的功能:#include void main ( ) int x,y; scanf(%d,&x); y= -1; if (x!=0) if (x0) y=1; else y=0; printf(x=%d,y=%dn,x,y); 输入输入 0 输出结果:输出结果:x=0,y= -1真正真正(zhnzhng)的配对的配对结果错误结果错误假假y=1真真 x!=0 x!=0 x0 x0y=-1y=0真真假假23第二十三页,共一百一十三页。
20、 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构在内嵌在内嵌if语句中要注意配对语句中要注意配对(pi du)关系关系在内嵌在内嵌if语句中加花括号改变配对关系语句中加花括号改变配对关系#include void main ( ) int x,y; scanf(%d,&x); y=-1; if (x!=0) if (x0) y=1; else y=0; printf(x=%d,y=%dn,x,y); 结论:如果内层结论:如果内层(ni cn)if 语句为单边结构,要加花括语句为单边结构,要加花括号号花括号改变配对花括号改变配对(pi du)关系关系结果正确结果正确正确配对
21、正确配对24第二十四页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构条件条件(tiojin)运算符的应用运算符的应用例例4.5:输入一个字符,判断它是否大写字母,若是:输入一个字符,判断它是否大写字母,若是将其转换为小写;否则原样将其转换为小写;否则原样(yun yn)输出。输出。 #include void main( ) char ch ; scanf(%c,&ch); ch=(ch=A & ch=Z)? ch+32:ch; printf (%cn,ch)25第二十五页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序
22、控制结构switch 语句(多分支选择语句(多分支选择(xunz)语句,开关语句)语句,开关语句) switch 语句的格式语句的格式: switch (表达式表达式) case 常量表达式常量表达式1 : 语句语句1; break; case 常量表达式常量表达式2 : 语句语句2; break; case 常量表达式常量表达式3 : 语句语句3; break; case 常量表达式常量表达式n : 语句语句n;break; default : 语句语句n+1 执行过程执行过程(guchng): 先计算先计算switch后面表达式的值,后面表达式的值,如果与某个如果与某个case后的常量值相
23、等,则执行其后的语句;后的常量值相等,则执行其后的语句;若所有若所有case中的常量值都不能与之匹配,则执行中的常量值都不能与之匹配,则执行default后的语句后的语句n+1。根据根据(gnj)(gnj)此表达此表达式的值找入口式的值找入口一般为常量,一般为常量,TCTC要求为要求为intint或或charchar型型26第二十六页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构switch 语句语句(yj)流程图(无流程图(无break语句语句(yj))注意注意: 执行完入口语句后执行完入口语句后,则自动则自动(zdng)转到下一转到下一个个case
24、后面的语句执行;后面的语句执行;表达式表达式语句语句1语句语句2语句语句3语句语句n语句语句n+1=常量常量3=常量常量2=常量常量1=其它其它=常量常量n27第二十七页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构switch 语句语句(yj)流程图(有流程图(有break语句语句(yj))注意注意: 如果语句中有如果语句中有break;,则执行完一个入,则执行完一个入口语句后跳出口语句后跳出(tio ch)switch选择结构。选择结构。 表达式表达式语句语句1语句语句2语句语句3语句语句n语句语句n+1=常量常量3=常量常量2=常量常量1=其它其
25、它=常量常量n28第二十八页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构switch语句语句(yj)举例举例例例4.9:输入成绩等级:输入成绩等级(dngj),打印出百分制分数段。打印出百分制分数段。#include void main( ) char c; printf(Please enter a charn); c=getchar( ); c=(c=a & c=z)?c-32:c; switch(c) case A : printf(“90100n); break; case B : printf(“8089n); break; case C
26、: printf(“7079n); break; case D : printf(“6069n); break; case E : printf(60n); break; default : printf(errorn); 注意:注意:casecase后面应为字符后面应为字符常量常量(chngling)(chngling)AA、BB等,等,不能为变量不能为变量A A、B B等。等。 29第二十九页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构switch语句举例语句举例(j l)(无(无break语句的效果)语句的效果)例例4.9:输入成绩:输入成绩(
27、chngj)等级等级,打印出百分制分数段。打印出百分制分数段。#include void main( ) char c; printf(Please enter a charn); c=getchar( ); c=(c=a & c=z)?c-32:c; switch(c) case A : printf(“90100n); case B : printf(“8089n); case C : printf(“7079n); case D : printf(“6069n); case E : printf(60n); default : printf(errorn); 去掉去掉breakbreak
28、语句语句(yj)(yj),程,程序运行后,从键盘上输序运行后,从键盘上输入入bb ,则程序运行,则程序运行的顺序和结果如下:的顺序和结果如下: 8089 70796069 60 error30第三十页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构switch 语句语句(yj)使用说明使用说明 各个分支中如果没有各个分支中如果没有break语句,则执行了相应的操作后,会自语句,则执行了相应的操作后,会自动转到下一个动转到下一个case后面的语句执行。后面的语句执行。case后面的常量后面的常量(chngling)值不能相同。值不能相同。各个分支中允许有多
29、个语句,可以不用各个分支中允许有多个语句,可以不用 括起来。括起来。各个各个case和和default分支的顺序可以改变,但分支的顺序可以改变,但default总是最后考虑总是最后考虑的入口。如果各个分支中均有的入口。如果各个分支中均有break语句,各个分支的出现次序语句,各个分支的出现次序不影响执行结果。不影响执行结果。可以使多个可以使多个case共用同一组执行语句。共用同一组执行语句。31第三十一页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构例例4.10 输入百分制成绩,要求输出相应的五级制输入百分制成绩,要求输出相应的五级制成绩。百分制成绩与
30、五级制成绩之间的转换标成绩。百分制成绩与五级制成绩之间的转换标准为:准为:90分以上分以上(yshng)为为“A”,80-89分为分为“B”,70-79分为分为“C”,60-69分为分为“D”,60分以下为分以下为“E”。switch 语句语句(yj)举例举例#include void main ( ) int score; scanf(%d,&score); switch (score/10) case 10: case 9: printf(An);break; case 8: printf(Bn);break; case 7: printf(Cn);break; case 6: print
31、f(Dn);break; default: printf(En); 32第三十二页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构上题也可用多分支上题也可用多分支if语句实现语句实现(shxin),见课本,见课本P71例例4.7。#include void main ( ) int score; scanf(%d,&score); if (score=90) printf(An); else if (score=80) printf(Bn); else if (score=70) printf(Cn); else if (score=60) printf
32、(Dn); else printf(En); switch 语句语句(yj)举例举例33第三十三页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构选择结构程序设计选择结构程序设计(chn x sh j)举例举例 判断字母、数字判断字母、数字 分段函数值的计算分段函数值的计算 三个数中求最大数三个数中求最大数 求三角形面积求三角形面积(min j)判断闰年判断闰年计算器程序计算器程序求一元二次方程的根求一元二次方程的根 对三个数进行升序排序对三个数进行升序排序 34第三十四页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控
33、制结构例例1:从键盘上输入一个字符判断是数字:从键盘上输入一个字符判断是数字(shz)、字、字母或其它字符。课本母或其它字符。课本P81 例例4.13 #include void main( ) char c; c=getchar( ) ; if ( c=A&c=a & c=0 & c=9 ) printf(digitn); else printf(othern); 35第三十五页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构例例2:计算:计算(j sun)分段函数。课本分段函数。课本P73 例例4.8)50()500()0(0)(2xxxxxxfy#
34、include void main ( ) float x,y; scanf(%f,&x); if(x0) y=0; else if(x=50) y=x; else y=x*x; printf(x=%f,y=%fn,x,y); 36第三十六页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构例例3: 从三个数中找出最大的数。从三个数中找出最大的数。#include void main( ) int a,b,c,max; scanf(%d,%d,%d, &a,&b,&c); max=a; if(bmax) max=b; if(cmax) max=c; pri
35、ntf(“max=%dn,max); 37第三十七页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构例例4 输入三角形三边输入三角形三边(sn bin)长,求三角形面积。长,求三角形面积。课本课本P82 例例4.14#include #include void main() float a,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);
36、else printf(Not a triangle.n);38第三十八页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构例例5:判断:判断(pndun)闰年算法,闰年的条件:能被闰年算法,闰年的条件:能被4整除,但不能被整除,但不能被100整除;能被整除;能被100整除,整除,又能被又能被400整除。整除。 (year%4=0&year%100!=0) | (year%400=0)39第三十九页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构 #include void main( ) int year,leap
37、; scanf(%d,&year); if (year%4=0&year%100) | (year%400=0) printf(%d is a leap yearn,year); else printf(%d is not a leap yearn,year); 40第四十页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构例例6 计算器程序。用户输入运算数和四则运计算器程序。用户输入运算数和四则运算符,输出运算结果。当输入运算符不是算符,输出运算结果。当输入运算符不是“+”、“-”、“*”或或“/”时提示出错时提示出错(ch cu),当输入除数为,当输入
38、除数为0时也提示出错时也提示出错(ch cu)。课课本本P80 例例4.12#include #include void main() float a,b; char c; scanf(%f%c%f,&a,&c,&b); 接下页接下页41第四十一页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构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(D
39、ivision by zero!n); else printf(=%fn,a/b); break; default: printf(Operator error!n); 42第四十二页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构例例7 求一元二次方程的根算法求一元二次方程的根算法(sun f)。课本。课本P86 例例4.17输入输入 a,b,c a=0 输出输出“非非二次方程二次方程”disc=b2-4ac disc=0 输出两个实根输出两个实根 输出两个复根输出两个复根 43第四十三页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章
40、程序控制结构程序控制结构#include void main( ) float a,b,c,disc,x1,x2,real,imag; scanf(%f,%f,%f,&a,&b,&c); if( fabs(a)=1e-6) printf(“not a quadraticn); else disc=b*b-4*a*c; if( fabs(disc)0) x1=(-b+sqrt(disc)/(2*a);x2=(-b-sqrt(disc)/(2*a);printf(distinct real roots: %8.4f and %8.4f, x1,x2); else real=-b/(2*a); im
41、ag=sqrt(-disc)/(2*a); printf(complex roots: n); printf(%8.4f+%8.4fin,real,imag); printf(%8.4f-%8.4fin,real,imag); 45第四十五页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构例例8:对三个数进行升序排序:对三个数进行升序排序 思路:思路:1.先将先将a、b进行比较,将二者之中的较小者放入变量进行比较,将二者之中的较小者放入变量a中,较大中,较大(jio d)者放入者放入b中,这样中,这样a就是就是a、b中较小数;中较小数;2.再将变量再将变
42、量a与变量与变量c进行比较,将进行比较,将a、c中的较小者放到中的较小者放到a中,较大者中,较大者放到放到c中,这样,变量中,这样,变量a中存放的就一定是三个数中的最小数;中存放的就一定是三个数中的最小数;3.最后将最后将b和和c进行比较,将二者之中较小者放入变量进行比较,将二者之中较小者放入变量b中,较大中,较大者放入变量者放入变量c中,就完成了对三个数的升序排序。中,就完成了对三个数的升序排序。 即对三个数进行排序,需要进行即对三个数进行排序,需要进行3次比较。次比较。46第四十六页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构#include v
43、oid main( ) int a,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; if(bc) t=b;b=c;c=t; printf(%d,%d,%dn,a,b,c);47第四十七页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构习题习题(xt)(xt)4.84.8参考答案参考答案输入一个年份和一个月份,输出该年的这个输入一个年份和一个月份,输出该年的这个(zh ge)(zh ge)月有多少天。月有多少天。#include void main() uns
44、igned y,m,d; scanf(%u-%u,&y,&m); switch(m) case 1: case 3: case 5: case 7: case 8: case 10: case 12: d=31; break; case 2: if (y%4=0&y%100!=0|y%400=0) d=29; else d=28; break; case 4: case 6: case 9: case 11: d=30; break; printf(There are %u days this month.n,d);48第四十八页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章
45、程序控制结构程序控制结构4.4 循环循环(xnhun)结构结构C语言的循环结构语言的循环结构(jigu)共有下列三种:共有下列三种:v while 语句语句 v do-while 语句语句 v for 语句语句49第四十九页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构4.4 循环循环(xnhun)结构结构例例4.18 求求1100之间所有之间所有(suyu)整数的和整数的和 开始开始0sum1ii=100sum+isumi+1i否否是是输出输出sum的值的值;开始开始0sum1ii=100sum+isumi+1i否否是是输出输出sum的值的值;当当型
46、型循循环环(xnhun)直直到到型型循循环环50第五十页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构while 语句语句(yj) 格式格式(g shi): while (表达式表达式) 语句语句 语句语句循环体循环体假假(0)真真(非非0)表达表达式式注:循环体可能注:循环体可能(knng)一次也不执行。一次也不执行。当表达式为真时当表达式为真时 语句语句 (循环体)(循环体)51第五十一页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构while 语句语句(yj)例例4.18 用用while语句语句(yj)求
47、求1100之间整数和之间整数和语句语句sum=sum+i;和语句和语句i+;能否能否(nn fu)改变位置?程序的哪些地方应作改变位置?程序的哪些地方应作相应的改动?相应的改动? 循循环环#include void main( ) int i,sum; sum=0; i=1; while( i=100) sum=sum+i; i+; printf(i=%d,sum=%dn,i,sum); 52第五十二页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构do-while 语句语句(yj) 格式格式(g shi):do 语句语句 while (表达式表达式)
48、; 语句语句循环体循环体假假(0)真真(非非0)表达式表达式注:循环体至少注:循环体至少(zhsho)执行一次。执行一次。用用do-while语句实语句实现直到现直到循环循环 循环体循环体 当条件成立时当条件成立时53第五十三页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构do-while 语句语句(yj)例例4.18 用用do-while语句语句(yj)求求100以内正整数的和以内正整数的和#include void main( ) int i,sum; sum=0; i=1; do sum=sum+i; i+; while( i=100 ) pri
49、ntf(i=%d,sum=%dn,i,sum); 循环循环(xnhun)分号不可缺少分号不可缺少54第五十四页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构for 语句语句(yj) 格式格式(g shi): for (表达式表达式1;表达式表达式2;表达式表达式3) 语语句句 语句语句 (循环体循环体)假假(0)真真(非非0)表达式表达式2求解表达式求解表达式1求解表达式求解表达式3实质实质(shzh)是当型循环!是当型循环!55第五十五页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构for 语句语句(yj)在
50、在for语句中,通常表达式语句中,通常表达式1用来为循环用来为循环(xnhun)变量赋初值;表达式变量赋初值;表达式2一般用来设置循环一般用来设置循环(xnhun)条件;表达式条件;表达式3一般用于循环一般用于循环(xnhun)变量增值。变量增值。for 语句的最常用格式:语句的最常用格式: for (for (循环变量赋初值循环变量赋初值; ;循环条件循环条件; ;循环变量增值循环变量增值) ) 语句语句56第五十六页,共一百一十三页。 C语言语言程序设计程序设计 第第4 4章章 程序控制结构程序控制结构for 语句语句(yj)例例4.18 用用for语句语句(yj)求求1100之间的整数之