C语言程序设计第三讲.ppt

上传人:pu****.1 文档编号:569457591 上传时间:2024-07-29 格式:PPT 页数:24 大小:358.81KB
返回 下载 相关 举报
C语言程序设计第三讲.ppt_第1页
第1页 / 共24页
C语言程序设计第三讲.ppt_第2页
第2页 / 共24页
C语言程序设计第三讲.ppt_第3页
第3页 / 共24页
C语言程序设计第三讲.ppt_第4页
第4页 / 共24页
C语言程序设计第三讲.ppt_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《C语言程序设计第三讲.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计第三讲.ppt(24页珍藏版)》请在金锄头文库上搜索。

1、C C语言程序设计语言程序设计主讲:杨雪青主讲:杨雪青E-mail: E-mail: 华北水利水电学院计算中心华北水利水电学院计算中心7/29/2024问题的提出问题的提出在实际问题中,要求计算机进行逻辑判断,即给出一个条件,让计算机判断在实际问题中,要求计算机进行逻辑判断,即给出一个条件,让计算机判断是否满足条件,并按照判断的结果来做不同的处理。是否满足条件,并按照判断的结果来做不同的处理。1.1.从键盘输入一个数,如果是正数则打印出来,否则不从键盘输入一个数,如果是正数则打印出来,否则不做任何处理;做任何处理;2. 2. 从键盘输入两个数,并按由大到小的顺序输出;从键盘输入两个数,并按由大

2、到小的顺序输出;3. 3. 求方程的根时,根判别式求方程的根时,根判别式b b2 2-4ac0, -4ac 0a 02. 2. 输入输入a a,b b,判断,判断 a ba b3. 3. 输入输入a a ,b b,c c,判断,判断 b*b-4*a*c 0b*b-4*a*c 0第三讲第三讲 选择结构程序设计选择结构程序设计7/29/2024 1、C语言中,语言中,if结构一般形式为:结构一般形式为: if (表达式)表达式) 语句语句1 else 语句语句2 if结结构构的的功功能能:首首先先计计算算表表达达式式的的值值,如如果果表表达达式式的的值值为为1(或或非非0)则则执执行行语语句句1,

3、若若表表达达式式的的值值为为0,则则执执行行语语句句2 (有(有else语语句!)句!)。 if结结构的构的N-S流程流程图图 第三讲第三讲 选择结构程序设计选择结构程序设计一、一、用用IF结构实现选择结构结构实现选择结构7/29/2024例:编写例:编写程序,求程序,求y的值,要求的值,要求x从键盘输入从键盘输入输入输入x输出输出yX = 0真真假假X 0第三讲第三讲 选择结构程序设计选择结构程序设计一、一、用用IF结构实现选择结构结构实现选择结构 2、程序举例、程序举例#include stdio.h#include math.hmain() float x, y; printf(ninp

4、ut x:); scanf(%f,&x); if (x=85.0) printf(“ns=%d, Very good!, s); if (s=70.0&s=60.0&s70.0) printf(“ns=%d, Pass!, s); if (smax输出输出maxfabs(c)max真真假假fabs(b)=maxfabs(b)max真真假假fabs(c)=max第三讲第三讲 选择结构程序设计选择结构程序设计一、一、用用IF结构实现选择结构结构实现选择结构 2、程序举例、程序举例7/29/2024if (if (表达式表达式1) 1) 语句语句1 1 else else if if (表达式表达式

5、2 2) 语句语句2 2 else else if if (表达式表达式n n) 语句语句n n else else 语句语句n n1 1if (表达式(表达式1) 语句语句1 else if (表达式(表达式2) 语句语句2 else if (表达式(表达式n) 语句语句n else 语句语句n1第三讲第三讲 选择结构程序设计选择结构程序设计一、一、用用IF结构实现选择结构结构实现选择结构 2、多个多个if结构嵌套:结构嵌套:简写作简写作7/29/2024这种结构又称为这种结构又称为ifelse if结构,其流程图如图所示。结构,其流程图如图所示。第三讲第三讲 选择结构程序设计选择结构程序设

6、计7/29/2024?如果在条件满足的情况下要执行的语句有多条怎么办?如果在条件满足的情况下要执行的语句有多条怎么办?例如:编程实现输入两个实数例如:编程实现输入两个实数a,b, 如果如果ay z=x;:if xy z=x; else z=y; else z=y;可以写成可以写成 z=(xz=(xy)?x:yy)?x:y; ; 例例: :设设a=1,b=2,a=1,b=2,则表达式则表达式 ab?a:b+1ab?a:b+1的值是多少的值是多少? ?第三讲第三讲 选择结构程序设计选择结构程序设计7/29/2024三、条件运算符三、条件运算符例例: :要求从键盘输入一个字符要求从键盘输入一个字符,

7、 ,如果输入的英文大写字母如果输入的英文大写字母, ,则将它则将它转换成小写字母后输出转换成小写字母后输出, ,否则输出原来输入的字符。否则输出原来输入的字符。第三讲第三讲 选择结构程序设计选择结构程序设计#include “studio.h”main()char c;Printf(“nEnter a char:”);Scanf(“%c”,c);C=(c=A&cb?a:cd?c:d的值是多少的值是多少?第三讲第三讲 选择结构程序设计选择结构程序设计7/29/2024四、四、 switch结构结构 在在C C语语言言中中提提供供了了一一个个直直接接实实现现多多路路分分支支选选择择的的结结构构,称

8、称为为switchswitch结构,其一般形式如下:结构,其一般形式如下:switch(switch(表达式表达式) ) case case 常量表达式常量表达式1: 1: 语句语句1 1 case case 常量表达式常量表达式2: 2: 语句语句2 2 case case 常量表达式常量表达式n: n: 语句语句n n default : default : 语句语句n n1 1 图图3.4 switch3.4 switch结构的流程图结构的流程图 第三讲第三讲 选择结构程序设计选择结构程序设计7/29/2024四、四、 switch结构结构switchswitch结构程序举例:结构程序举

9、例: 从从键键盘盘输输入入1-71-7之之间间的的整整数数,输输出出这这个个数数字字所所对对应应的的星星期期几几的英文单词。的英文单词。第三讲第三讲 选择结构程序设计选择结构程序设计#include stdio.hmain() int num;scanf(%d, &num); swich(num) case 1: printf(“nMonday!); break; case 2: printf(“nTuesday!); break; case 3: printf(“nWednesday!); break; case 4: printf(“nThursday!); break; case 5:

10、printf(“nFriday!); break; case 6: printf(“nSatur!); break; case 7: printf(“nSunday!); 7/29/2024下面对下面对switchswitch结构作几点说明:结构作几点说明: 1 1)switchswitch结构中的表达式、常量表达式结构中的表达式、常量表达式1 1、常量表达式、常量表达式n n必须是整必须是整型或字符型。这是因为,在型或字符型。这是因为,在switchswitch结构中,其分支数一般是有限的,并且结构中,其分支数一般是有限的,并且是离散的,因此,其表达式的值也应是有限的,且是离散的。是离散的,

11、因此,其表达式的值也应是有限的,且是离散的。 2 2)同一个)同一个switchswitch结构中的常量表达式值必须互不相同,否则就会出现矛结构中的常量表达式值必须互不相同,否则就会出现矛盾的现象,即对于盾的现象,即对于“表达式表达式”的同一个值对应多种执行方案,这是错误的。的同一个值对应多种执行方案,这是错误的。 3 3)在)在switchswitch结构中,结构中,case case 与与 default default 的顺序可以任意,各的顺序可以任意,各casecase之间之间 的的顺序也可以任意。顺序也可以任意。 4 4)在执行)在执行switchswitch结构时,当执行完某结构时

12、,当执行完某case case 后的语句后,将顺序执行后面后的语句后,将顺序执行后面case case 后的语句,直到遇后的语句,直到遇 break break 语句才退出整个语句才退出整个switch switch 结构的执行。结构的执行。 5 5)在)在switchswitch结构中,如果没有结构中,如果没有default default 且且“表达式表达式”值不等于任何值不等于任何case case 后常量表达式的值,则直接退出后常量表达式的值,则直接退出switch switch 结构而转到其后的语句执行。结构而转到其后的语句执行。第三讲第三讲 选择结构程序设计选择结构程序设计四、四、

13、 switch结构结构7/29/20243.6 程序举例程序举例例例3.12 3.12 计算奖金。计算奖金。 当当企企业业利利润润P P等等于于或或低低于于0.50.5万万元元时时,奖奖金金为为利利润润的的1%1%;当当0.50.5P P11万万元元时时,超超过过0.50.5万万元元部部分分的的奖奖金金为为利利润润的的1.5%1.5%,0.50.5万万元元以以下下仍仍按按1%1%计计算算;当当1 1P P22万万元元时时,1 1万万元元以以下下部部分分仍仍按按前前面面的的方方法法计计算算,超超过过1 1万万元元的的部部分分其其奖奖金金按按利利润润的的2%2%计计算算;当当2 2P P55万万元

14、元时时,2 2万万元元以以下下部部分分仍仍按按前前面面的的方方法法计计算算,超超过过2 2万万元元部部分分的的奖奖金金按按利利润润的的2.5%2.5%计计算算;当当5 5P P1010万万元元时时,5 5万万元元以以下下部部分分仍仍按按前前面面的的方方法法计计算算,超超过过5 5万万元元部部分分的的奖奖金金按按利利润润的的3%3%计计算算;当当P P1010万万元元时时,1010万万元元以以下下部部分分仍仍按按前前面面的的方方法法计计算算,超超过过1010万万元元部部分分按按3.5%3.5%计计算算。其其中中P P由由键键盘盘输输入入,计算并输出相应的奖金数计算并输出相应的奖金数W W。7/2

15、9/2024其流程图如图其流程图如图3.5所示。所示。图3.5 例3.12中ifelse if结构的流程图7/29/2024根据图根据图3.5所示的流程图,用所示的流程图,用ifelse if结构写出结构写出C程序如下:程序如下:#include stdio.hmain() float p,w; printf(input p: ); scanf(%f,&p); if (p0.0) w0.0; else if (p0.5) w0.01*p; else if (p1.0) w0.0050.015*(p0.5); else if (p2.0) w0.01250.02*(p1.0); else if

16、(p5.0) w0.03250.025*(p2.0); else if (p10.0) w0.10750.03*(p5.0); else w0.25750.035*(p10.0); printf(w%fn,w);7/29/2024相应的相应的C程序如下:程序如下:#include stdio.h#include math.hmain() double a,b,c,d,x1,x2,p; printf(input a,b,c: ); scanf(“%lf%lf%lf”,&a,&b,&c); db*b4*a*c; if (d0.0) dsqrt(d); x1(bd)/(2*a); x2c/(a*x1); printf(X1%fn,x1); printf(X2%fn,x2); Else Printf(“The equation has no float roots!”); 例例3.14 求解一元二次方程求解一元二次方程Ax2BxC0。7/29/2024 作业:作业:P P81 81 3.013.01,3.023.02,3.033.03P P8282 3.12 3.12,3.143.14第三讲第三讲 选择结构程序设计选择结构程序设计7/29/2024

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号