C语言-选择结构程序设计课件

上传人:文**** 文档编号:241636723 上传时间:2024-07-12 格式:PPT 页数:110 大小:1.10MB
返回 下载 相关 举报
C语言-选择结构程序设计课件_第1页
第1页 / 共110页
C语言-选择结构程序设计课件_第2页
第2页 / 共110页
C语言-选择结构程序设计课件_第3页
第3页 / 共110页
点击查看更多>>
资源描述
第第4 4章章 选择结构程序设计选择结构程序设计4.1选择结构和条件判断4.2用if语句实现选择结构4.3关系运算符和关系表达式4.4逻辑运算符和逻辑表达式4.5条件运算符和条件表达式4.6用switch语句实现多分支选择结构4.7选择结构程序综合举例1第4章 选择结构程序设计4.1 选择结构和条件判断1标题添加点击此处输入相关文本内容点击此处输入相关文本内容前言点击此处输入相关文本内容标题添加点击此处输入相关文本内容2标题添加点击此处输入相点击此处输入前言点击此处输入标题添加点主要内容:1.关系运算符和关系表达式2.逻辑运算符和逻辑表达式3.if语句4.switch语句学习目标:掌握关系运算、逻辑运算和C语言条 件语句的使用重点 ifif语句、switchswitch语句的使用难点 i if语句的嵌套 第第4 4章章 选择结构程序设计选择结构程序设计3主要内容:学习目标:掌握关系运算、逻辑运算和C语言条第4章 4.14.1选择结构和条件判断选择结构和条件判断在现实生活中,需要进行判断和选择的情况是很多的u如果你在家,我去拜访你u如果考试不及格,要补考u如果遇到红灯,要停车等待u周末我们去郊游u70岁以上的老年人,入公园免票44.1 选择结构和条件判断在现实生活中,需要进行判断和选择的4.14.1选择结构和条件判断选择结构和条件判断在现实生活中,需要进行判断和选择的情况是很多的处理这些问题,关键在于进行条件判断由于程序处理问题的需要,在大多数程序中都会包含选择结构,在进行下一个操作之前先进行条件判断54.1 选择结构和条件判断在现实生活中,需要进行判断和选择的4.14.1选择结构和条件判断选择结构和条件判断C语言有两种选择语句:(1)if语句,实现两个分支的选择结构(2)switch语句,实现多分支的选择结构64.1 选择结构和条件判断C语言有两种选择语句:64.14.1选择结构和条件判断选择结构和条件判断例4.1在例3.5的基础上对程序进行改进。题目要求是求方程的根。由键盘输入a,b,c。假设a,b,c的值任意,并不保证。需要在程序中进行判别,如果,就计算并输出方程的两个实根,否则就输出“方程无实根”的信息。74.1 选择结构和条件判断 例4.1 在例3.5的基础上对解题思路求x1、x2x1、x2endd=0无实根yn开 始d=b2-4aca,b,c开 始求根:x1、x 2x1、x 2enda,b,cd=b2-4ac8解题思路求x1、x2x1、x2endd=0无实根yn开 始#include#includeintmain()doublea,b,c,disc,x1,x2,p,q;scanf(%lf%lf%lf,&a,&b,&c);disc=b*b-4*a*c;计算b2-4ac,disc的值变为-159#include 计算b2-4ac,disif(disc0)printf(“hasnotrealrootsn”);elsep=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;printf(“realroots:nx1=%7.2fnx2=%7.2fn”,x1,x2);return0;-150为真10 if(disc0)-150为真10#include#includeintmain()doublea,b,c,disc,x1,x2,p,q;scanf(%lf%lf%lf,&a,&b,&c);disc=b*b-4*a*c;计算b2-4ac,disc的值变为811#include 计算b2-4ac,disif(disc0)printf(“hasnotrealrootsn”);elsep=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;printf(“realroots:nx1=%7.2fnx2=%7.2fn”,x1,x2);return0;80为假p的值变为-1q的值变为0.71x1的值变为-0.29x2的值变为-1.7112 if(disc0)80为假p的值变为-1q的值if(disc0)printf(“hasnotrealrootsn”);elsep=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;printf(“realroots:nx1=%7.2fnx2=%7.2fn”,x1,x2);return0;选择结构,用if语句实现的13 if(disc0)选择结构,用if语句实现的13if(disc0)printf(“hasnotrealrootsn”);elsep=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;printf(“realroots:nx1=%7.2fnx2=%7.2fn”,x1,x2);return0;复合语句14 if(disc0)复合语句144.24.2用用if if语句实现选择结构语句实现选择结构4.2.1用if语句处理选择结构举例4.2.2if语句的一般形式154.2 用if语句实现选择结构4.2.1 用if语句处理选择4.2.14.2.1用用if if语句处理选择结构举例语句处理选择结构举例例4.2输入两个实数,按代数值由小到大的顺序输出这两个数。164.2.1 用if语句处理选择结构举例 例4.2 输入两个解题思路:u只需要做一次比较,然后进行一次交换即可u用if语句实现条件判断u关键是怎样实现两个变量值的互换AB互换前AB互换后4.2.14.2.1用用if if语句处理选择结构举例语句处理选择结构举例17解题思路:AB互换前AB互换后4.2.1 用if语句ABC4.2.14.2.1用用if if语句处理选择结构举例语句处理选择结构举例18ABC4.2.1 用if语句处理选择结构举例18ABC4.2.14.2.1用用if if语句处理选择结构举例语句处理选择结构举例19ABC4.2.1 用if语句处理选择结构举例19ABC 4.2.14.2.1用用if if语句处理选择结构举例语句处理选择结构举例20ABC4.2.1 用if语句处理选择结构举例20#includeintmain()floata,b,t;scanf(%f,%f,&a,&b);if(ab)t=a;a=b;b=t;printf(%5.2f,%5.2fn,a,b);return0;将a和b的值互换如果ab21#include 将a和b的值互换如果a#includeintmain()floata,b,t;scanf(%f,%f,&a,&b);if(ab)t=a;a=b;b=t;printf(%5.2f,%5.2fn,a,b);return0;选择结构,用if语句实现的开 始enda,bbaa,ba b非0022#include 选择结构,开始enda 例4.3输入3个数a,b,c,要求按由小到大的顺序输出。23 例4.3 输入3个数a,b,c,要求按由小到大的顺序输出解题思路:可以先用伪代码写出算法:uifab,a和b对换(a是a、b中的小者)uifac,a和c对换(a是三者中最小者)uifbc,b和c对换(b是三者中次小者)u顺序输出a,b,c24解题思路:可以先用伪代码写出算法:24#includeintmain()floata,b,c,t;scanf(%f,%f,%f,&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(%5.2f,%5.2f,%5.2fn,a,b,c);return0;如果ab,将a和b对换a是a、b中的小者25#include 如果 ab,将a和b对#includeintmain()floata,b,c,t;scanf(%f,%f,%f,&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(%5.2f,%5.2f,%5.2fn,a,b,c);return0;如果ac,将a和c对换a是三者中的小者26#include 如果 ac,将a和c对#includeintmain()floata,b,c,t;scanf(%f,%f,%f,&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(%5.2f,%5.2f,%5.2fn,a,b,c);return0;如果bc,将b和c对换b是三者中的次小者27#include 如果 bc,将b和c对4.2.2if4.2.2if语句的一般形式语句的一般形式if(表达式)语句1else语句2关系表达式逻辑表达式数值表达式方括号内的部分为可选的284.2.2 if语句的一般形式 if(表达式)4.2.2if4.2.2if语句的一般形式语句的一般形式if(表达式)语句1else语句2简单的语句复合语句另一个if语句等294.2.2 if语句的一般形式 if(表达式)最常用的3种if语句形式:1.if(表达式)语句1(没有else子句)2.if(表达式)语句1else语句2(有else子句)3.if(表达式)语句elseif(表达式)语句elseif(表达式)语句 elseif(表达式)语句else语句m+1(在else部分又嵌套了多层的if语句)30最常用的3种if语句形式:30语句功能下条语句语句1语句2e非00格式1:if(e)语句计算 e 的值并判断。e 值非0,则执行语句;否则,执行下条语句。格式2:if(e)语句1 else 语句2计算 e 的值并判断。e 值非0,则执行语句1;否则,执行语句2。e语句非00下条语句31语句功能下条语句语句1语句2e非00格式1:if(e)语格式3:if(e )语句1 else if(e )语句2 else if(e )语句3 .else if(e )语句m else 语句n 123m计算 e1 的值并判断,其值非0执行语句1;否则,判断 e2 的值,其值非0执行语句2;否则,判断 e3 的值,其值非0执行语句3;否则,.判断em 的值,其值非0执行语句m;否则,执行语句n00e1e3eme2语句1语句3语句2语句m语句n 下条语句非0非0非0非000.32123m计算 e1 的值并判断,其值非0执行语句1;否则,判说明:1 1、if if 后面的表达式类型任意。如:l if(a=b&x=y)printf(“a=b,x=y”);if(a=b&x=y)printf(“a=b,x=y”);l if(3)printf(“OK”);if(3)printf(“OK”);l if(a)printf(“%d”,a);if(a)printf(“%d”,a);2 2、elseelse语句不能单独使用,与 if if 配对。3 3、语句可以是复合语句4 4、if(x)if(x)if(x!=0)if(x!=0)if(!x)if(!x)if(x=0)if(x=0)33说明:33例:从键盘输入两个整型数,输出最大数。main()int a,b;scanf(“%d,%d”,&a,&b);if(a=b)printf(“max=%dn”,a);if(ba)printf(“max=%dn”,b);开 始enda,babaa)a=b;printf(“max=%dn”,a);开 始enda,bbaaa=b非00例:从键盘输入两个整型数,输出最大数。35main()开始enda,bbaaa=b非00例:从 例:某运输公司吨公里基本运费为p,根据距离s的远近计费标准如下:s250km没有折扣 250 s500 2%折扣500 s1000 5%折扣 1000 s2000 8%折扣 2000 s=3000)d=0.15;else if(s=2000)d=0.10;else if(s=1000)d=0.08;else if(s=500)d=0.05;else if(s=250)d=0.02;else d=0.0;f=p*w*s*(1-d);printf(“f=%15.2f”,f);37 main()374.2.34.2.3选择结构选择结构的的嵌套嵌套在if语句中又包含一个或多个if语句称为if语句的嵌套一般形式:if()if()语句1 else 语句2 else if()语句3 else 语句4 内嵌ifelse总是与它上面最近的未配对的if配对384.2.3 选择结构的嵌套在if语句中又包含一个或多个if语4.2.34.2.3选择结构的嵌套选择结构的嵌套在if语句中又包含一个或多个if语句称为if语句的嵌套if()if()语句1 else语句2内嵌if限定了内嵌if范围394.2.3 选择结构的嵌套在if语句中又包含一个或多个if语4.2.34.2.3选择结构的嵌套选择结构的嵌套 例4.5有一函数:编一程序,输入一个x值,要求输出相应的y值。404.2.3 选择结构的嵌套 例4.5有一函数:404.2.34.2.3选择结构的嵌套选择结构的嵌套解题思路:u用if语句检查x的值,根据x的值决定赋予y的值u由于y的可能值不是两个而是三个,因此不可能只用一个简单的(无内嵌if)的if语句来实现414.2.3 选择结构的嵌套解题思路:414.2.34.2.3选择结构的嵌套选择结构的嵌套解题思路:方法1(1)先后用3个独立的if语句处理:输入x若 x 0,则y=1输出x和yscanf(%d,&x);if(x0)y=1;printf(x=%d,y=%dn,x,y);424.2.3 选择结构的嵌套解题思路:方法1scanf(%d4.2.34.2.3选择结构的嵌套选择结构的嵌套解题思路:方法2(2)用一个嵌套的if语句处理:输入x若x 0,则y=-1 否则 若 x=0,则y=0 否则 y=1输出x和yscanf(%d,&x);if(x0)y=-1;else if(x=0)y=0;else y=1;printf(x=%d,y=%dn,x,y);434.2.3 选择结构的嵌套解题思路:方法2scanf(%d4.2.34.2.3选择结构的嵌套选择结构的嵌套解题思路:方法2(2)用一个嵌套的if语句处理:输入x若x 0,则y=-1 否则 若 x=0,则y=0 否则 y=1输出x和yscanf(%d,&x);if(x=0)if(x0)y=1;else y=0;else y=-1;printf(x=%d,y=%dn,x,y);提倡内嵌if放在else中444.2.3 选择结构的嵌套解题思路:方法2scanf(%d例:if(a=b)if(b=c)printf(“a=b=c”);else printf(“a!=b”);修改:if(a=b)if(b=c)printf(“a=b=c”);else printf(“a!=b”);实现if else if else 正确配对方法:加 else总是与它上面最近的未配对的if配对45例:if(a=b)修改:if(a=b)实现if 分析:a=0 不是二次方程。b2-4ac=0 有两个相等实根。b2-4ac0 有两不等实根。b2-4ac=0求xyynnd=b-4ac2yna=0开 始a,b,c47end求x1、x2x求xr、xix1、x2xr、xiNO!dif(fabs(a)1e-6)printf(“No!”);else d=b*b-4*a*c;if(fabs(d)0)x1=(-b+sqrt(d)/(2*a);x2=(-b-sqrt(d)/(2*a);printf(“Two real roots:%f,%f”,x1,x2);else xr=-b/(2*a);xi=sqrt(-d)/(2*a);printf(“Complex roots:%f+%fi”,xr,xi);printf(“Complex roots:%f-%fi”,xr,xi);48if(fabs(a)a+b等效于c(a+b)ab=c等效于(ab)=ca=bc等效于a=(bc等效于a=(bc)524.3.1关系运算符及其优先次序ca+b 等4.3.24.3.2关系表达式关系表达式关系表达式u用关系运算符将两个数值或数值表达式连接起来的式子u关系表达式的值是一个逻辑值a+bc+d(a=3)b)=(cd)1 真0 假注意:f=abc 表达式的值。如:0 x c+d (4.44.4逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式4.4.1逻辑运算符及其优先次序4.4.2逻辑表达式4.4.3逻辑型变量544.4 逻辑运算符和逻辑表达式4.4.1 逻辑运算符及其优先4.4.14.4.1逻辑运算符及其优先次序逻辑运算符及其优先次序3种逻辑运算符:&(逻辑与)|(逻辑或)!(逻辑非)&和|是双目(元)运算符!是一目(元)运算符逻辑表达式u用逻辑运算符将关系表达式或其他逻辑量连接起来的式子554.4.1 逻辑运算符及其优先次序3种逻辑运算符:554.4.14.4.1逻辑运算符及其优先次序逻辑运算符及其优先次序判断年龄在13至17岁之内?age=13&age=17判断年龄小于12或大于65?age65564.4.1 逻辑运算符及其优先次序判断年龄在13至17岁之内4.4.14.4.1逻辑运算符及其优先次序逻辑运算符及其优先次序ab!a!ba&ba|b 真真假假真真真假假真假真假真真假假真假假真真假假逻辑运算的真值表574.4.1 逻辑运算符及其优先次序ab!a!ba&4.4.14.4.1逻辑运算符及其优先次序逻辑运算符及其优先次序逻辑运算符的优先次序!&|(!为三者中最高)与其他运算符的优先次序!(高)算术运算符关系运算符&和|赋值运算符(低)584.4.1 逻辑运算符及其优先次序逻辑运算符的优先次序 1、逻辑表达式的值 1 真0 假例:设 a=4,b=5,则 !a 为 0(假)a&b-1 为 1(真)5 3&2|2 b)&(n=cd);printf(“k=%d,m=%d,n=%dn”,k,m,n);运行结果:k=0,m=0,n=161例:main()运行结果:注:(n=cd)不被执行,n4.4.24.4.2逻辑表达式逻辑表达式修改后的逻辑运算真值表ab!a!ba&ba|b 非0非00011非000101假非01001假01100624.4.2 逻辑表达式修改后的逻辑运算真值表ab!a!b4.4.24.4.2逻辑表达式逻辑表达式判别某一年是否闰年,用逻辑表达式表示闰年的条件是符合下面二者之一:能被4整除,但不能被100整除,如2008能被400整除,如2000u(year%4=0&year100!=0)|year%400=0u如果表达式值为1,则闰年;否则为非闰年634.4.2 逻辑表达式判别某一年是否闰年,用逻辑表达式表示64.4.34.4.3逻辑型变量逻辑型变量这是C99所增加的一种数据类型可以将关系运算和逻辑运算的结果存到一个逻辑型变量中,以便于分析和运算644.4.3 逻辑型变量这是C99所增加的一种数据类型644.54.5条件运算符和条件表达式条件运算符和条件表达式有一种if语句,当被判别的表达式的值为“真”或“假”时,都执行一个赋值语句且向同一个变量赋值如:if(ab)max=a;elsemax=b;max=(ab)?a:b;条件运算符654.5 条件运算符和条件表达式有一种if语句,当被判别的表达4.54.5条件运算符和条件表达式条件运算符和条件表达式有一种if语句,当被判别的表达式的值为“真”或“假”时,都执行一个赋值语句且向同一个变量赋值如:if(ab)max=a;elsemax=b;max=(ab)?a:b;条件表达式664.5 条件运算符和条件表达式有一种if语句,当被判别的表达1、条件表达式的一般形式?:2、运算规则先计算表达式1,若为非0,则以表达式2的值作为条件表达式的值;否则,以表达式3的值为条件表达式的值。3、优先级算术 关系 逻辑运算(!除外)条件运算 赋值运算高低右结合4.54.5条件运算符和条件表达式条件运算符和条件表达式671、条件表达式的一般形式?:y?x:y;printf(“max=%d”,z);或 printf(“max=%d”,xy?x:y);或 xy?printf(“%d”,x):printf(“%d”,y);举例:(2)ab?a:b+1等价于ab?a:(b+1)而不是(ab?a:b)+1(3)ab?a:cd?c:d等价于ab?a:(cd?c:d)(4)xy?1:5.6 表达式的值的类型取高的(5)ch=(ch=A&chb?a:b+1等4.54.5条件运算符和条件表达式条件运算符和条件表达式例4.4输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。694.5 条件运算符和条件表达式 例4.4 输入一个字符,判4.54.5条件运算符和条件表达式条件运算符和条件表达式解题思路:用条件表达式来处理,当字母是大写时,转换成小写字母,否则不转换704.5 条件运算符和条件表达式解题思路:用条件表达式来处理,4.54.5条件运算符和条件表达式条件运算符和条件表达式#includeintmain()charch;scanf(%c,&ch);ch=(ch=A&ch=Z)?(ch+32):ch;printf(%cn,ch);return0;714.5 条件运算符和条件表达式#include stdio4.74.7用用switchswitch语句实现多分支选择结构语句实现多分支选择结构switch语句用来实现多分支选择结构u学生成绩分类85分以上为A等7084分为B等6069分为C等u人口统计分类按年龄分为老、中、青、少、儿童724.7 用switch语句实现多分支选择结构switch语句4.64.6用用switchswitch语句实现多分支选择结构语句实现多分支选择结构例4.6要求按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为7084分,C等为6069分,D等为60分以下。成绩的等级由键盘输入。734.6 用switch语句实现多分支选择结构 例4.6 4.64.6用用switchswitch语句实现多分支选择结构语句实现多分支选择结构解题思路:u判断出这是一个多分支选择问题u根据百分制分数将学生成绩分为4个等级u如果用if语句,至少要用3层嵌套的if,进行3次检查判断u用switch语句进行一次检查即可得到结果744.6 用switch语句实现多分支选择结构解题思路:74#includeintmain()chargrade;scanf(%c,&grade);printf(Yourscore:);switch(grade)caseA:printf(85100n);break;caseB:printf(7084n);break;caseC:printf(6069n);break;caseD:printf(60n);break;default:printf(enterdataerror!n);return0;值为A75#include 值为A75#includeintmain()chargrade;scanf(%c,&grade);printf(Yourscore:);switch(grade)caseA:printf(85100n);break;caseB:printf(7084n);break;caseC:printf(6069n);break;caseD:printf(60n);break;default:printf(enterdataerror!n);return0;不能少76#include 不能少76#includeintmain()chargrade;scanf(%c,&grade);printf(Yourscore:);switch(grade)caseA:printf(85100n);break;caseB:printf(7084n);break;caseC:printf(6069n);break;caseD:printf(60n);break;default:printf(enterdataerror!n);return0;值为C77#include 值为C77#includeintmain()chargrade;scanf(%c,&grade);printf(Yourscore:);switch(grade)caseA:printf(85100n);break;caseB:printf(7084n);break;caseC:printf(6069n);break;caseD:printf(60n);break;default:printf(enterdataerror!n);return0;值为F78#include 值为F78#includeintmain()chargrade;scanf(%c,&grade);printf(Yourscore:);switch(grade)caseA:printf(85100n);break;caseB:printf(7084n);break;caseC:printf(6069n);break;caseD:printf(60n);break;default:printf(enterdataerror!n);return0;此行位置有问题,应如何修改?79#include 此行位置有问题,应如何修switch语句的作用是根据表达式的值,使流程跳转到不同的语句switch语句的一般形式:switch(表达式)case常量1:语句1case常量2:语句2 case常量n:语句ndefault:语句n+1整数类型(包括字符型)80switch语句的作用是根据表达式的值,使流程跳转到不同的语switch语句的作用是根据表达式的值,使流程跳转到不同的语句switch语句的一般形式:switch(表达式)case常量1:语句1case常量2:语句2 case常量n:语句ndefault:语句n+1不能相同81switch语句的作用是根据表达式的值,使流程跳转到不同的语switch语句的作用是根据表达式的值,使流程跳转到不同的语句switch语句的执行过程:u当switch后的表达式的值与某一个case后的常量表达式的值相等时,执行其后的语句;若无匹配,则执行default后的语句break 语句u使流程跳出switch结构,u终止switch语句的执行。82switch语句的作用是根据表达式的值,使流程跳转到不同的语说明1、各case中的常量表达式值应互不相等2、各case中的常量表达式起着语句标号的作用,用来标识语句的位置3、当多个常量表达式确定的操作可以用同一组语句实现,此时多个case可以共用一组语句4、若每一case及default的最后的语句为break,则各case及default在switch中出现的先后顺 序对执行结果无影响83说明1、各case中的常量表达式值应互不相等2、各case中scanf(%c,&grade);printf(Yourscore:);switch(grade)caseA:printf(85100n);break;caseB:printf(7084n);break;caseC:printf(6069n);break;caseD:printf(60n);break;default:printf(enterdataerror!n);8484scanf(%c,&grade);printf(Yourscore:);switch(grade)caseA:printf(85100n);break;caseB:printf(7084n);break;caseC:printf(6069n);break;caseD:printf(60n);break;default:printf(enterdataerror!n);8585scanf(%c,&grade);printf(Yourscore:);switch(grade)caseA:caseB:caseC:printf(6069n);break;caseD:printf(60n);break;default:printf(enterdataerror!n);8686例4.7编写程序,用switch语句处理菜单命令。解题思路:在许多应用程序中,用菜单对流程进行控制,例如从键盘输入一个A或a字符,就会执行A操作,输入一个B或b字符,就会执行B操作,等等。87 例4.7 编写程序,用switch语句处理菜单命令。8#includeintmain()voidaction1(int,int),action2(int,int);charch;inta=15,b=23;ch=getchar();switch(ch)casea:caseA:action1(a,b);break;caseb:caseB:action2(a,b);break;default:putchar(a);return0;输入a或A调用action1函数,执行A操作voidaction1(intx,inty)printf(x+y=%dn,x+y);88#include 输入a或A调用actio#includeintmain()voidaction1(int,int),action2(int,int);charch;inta=15,b=23;ch=getchar();switch(ch)casea:caseA:action1(a,b);break;caseb:caseB:action2(a,b);break;default:putchar(a);return0;输入b或B调用action2函数,执行B操作voidaction2(intx,inty)printf(x*y=%dn,x*y);89#include 输入b或B调用actio#includeintmain()voidaction1(int,int),action2(int,int);charch;inta=15,b=23;ch=getchar();switch(ch)casea:caseA:action1(a,b);break;caseb:caseB:action2(a,b);break;default:putchar(a);return0;输入其他字符发出警告90#include 输入其他字符发出警告90这是一个非常简单的示意程序实际应用中,所指定的操作可能比较复杂:uA:输入全班学生各门课的成绩uB:计算并输出每个学生各门课的平均成绩uC:计算并输出各门课的全班平均成绩uD:对全班学生的平均成绩由高到低排序并输出可以按以上思路编写程序,把各action函数设计成不同的功能以实现各要求91这是一个非常简单的示意程序914.74.7选择结构程序综合举例选择结构程序综合举例例4.8写一程序,判断某一年是否闰年。解题思路:在前面已介绍过判别闰年的方法本例用不同的方法编写程序924.7选择结构程序综合举例例4.8 写一程序,判断某一年是否4.74.7选择结构程序综合举例选择结构程序综合举例用变量leap代表是否闰年的信息。若闰年,令leap=1;非闰年,leap=0。最后判断leap是否为(真),若是,则输出“闰年”信息参见教材图4.13934.7选择结构程序综合举例用变量leap代表是否闰年的信息。#includeintmain()intyear,leap;printf(enteryear:);scanf(%d,&year);if(year%4=0)if(year%100=0)if(year%400=0)leap=1;elseleap=0;elseleap=1;elseleap=0;if(leap)printf(%dis,year);elseprintf(%disnot,year);printf(aleapyear.n);return0;标志变量与if(leap!=0)含义相同94#include 标志变量与if(lea#includeintmain()intyear,leap;printf(enteryear:);scanf(%d,&year);if(year%4=0)if(year%100=0)if(year%400=0)leap=1;elseleap=0;elseleap=1;elseleap=0;if(leap)printf(%dis,year);elseprintf(%disnot,year);printf(aleapyear.n);return0;采取锯齿形式95#include 采取锯齿形式95#includeintmain()intyear,leap;printf(enteryear:);scanf(%d,&year);if(year%4=0)if(year%100=0)if(year%400=0)leap=1;elseleap=0;elseleap=1;elseleap=0;if(leap)printf(%dis,year);elseprintf(%disnot,year);printf(aleapyear.n);return0;if(year%4!=0)leap=0;else if(year%100!=0)leap=1;else if(year%400!=0)leap=0;else leap=1;96#include if(year%4!=0#includeintmain()intyear,leap;printf(enteryear:);scanf(%d,&year);if(year%4=0)if(year%100=0)if(year%400=0)leap=1;elseleap=0;elseleap=1;elseleap=0;if(leap)printf(%dis,year);elseprintf(%disnot,year);printf(aleapyear.n);return0;if(year%4=0&year%100!=0)|(year%400=0)leap=1;else leap=0;97#include if(year%4=例4.9求方程的解。解题思路:处理以下各情况,不是二次方程,有两个相等实根,有两个不等实根。,有两个共轭复根。应当以p+qi和p-qi的形式输出复根其中,p=-b/2a,q=()/2a参见教材图4.1498 例4.9 求#include#includeintmain()doublea,b,c,disc,x1,x2,realpart,imagpart;scanf(%lf,%lf,%lf,&a,&b,&c);printf(Theequation);if(fabs(a)=1e-6)printf(isnotaquadraticn);实型不能用if(a=0)99#include 实型不能用if(a=elsedisc=b*b-4*a*c;if(fabs(disc)1e-6)x1=(-b+sqrt(disc)/(2*a);x2=(-b-sqrt(disc)/(2*a);printf(hasdistinctrealroots:%8.4fand%8.4fn,x1,x2);else101 if(disc1e-6)101realpart=-b/(2*a);imagpart=sqrt(-disc)/(2*a);printf(hascomplexroots:n);printf(%8.4f+%8.4fin“,realpart,imagpart);printf(%8.4f-%8.4fin,realpart,imagpart);return0;102 realpart=-b/(2*a);realpart=-b/(2*a);imagpart=sqrt(-disc)/(2*a);printf(hascomplexroots:n);printf(%8.4f+%8.4fin“,realpart,imagpart);printf(%8.4f-%8.4fin,realpart,imagpart);return0;103 realpart=-b/(2*a);realpart=-b/(2*a);imagpart=sqrt(-disc)/(2*a);printf(hascomplexroots:n);printf(%8.4f+%8.4fin“,realpart,imagpart);printf(%8.4f-%8.4fin,realpart,imagpart);return0;104 realpart=-b/(2*a);例4.10运输公司对用户计算运输费用。路程(skm)越远,每吨千米运费越低。标准如下:s250没有折扣250s5002折扣500s10005折扣1000s20008折扣2000s300010折扣3000s15折扣105 例4.10 运输公司对用户计算运输费用。路程(s km解题思路:u设每吨每千米货物的基本运费为p,货物重为w,距离为s,折扣为du总运费f的计算公式为f=pws(1-d)106解题思路:106折扣的变化规律(参见教材图4.15):u折扣的“变化点”都是250的倍数u在横轴上加一种坐标c,c的值为s/250uc代表250的倍数u当c1时,表示s250,无折扣u1c2时,表示250s500,折扣d=2u2c4时,d=5;4c8时,d=8;8c12时,d=10;c12时,d=15107折扣的变化规律(参见教材图4.15):107提问与解答环节Questionsandanswers108提问与解答环节108添加标题添加标题添加标题添加标题此处结束语点击此处添加段落文本.您的内容打在这里,或通过复制您的文本后在此框中选择粘贴并选择只保留文字109添加标题添加添加添加标题此处结束语点击此处添加段落文本 .感谢聆听Theusercandemonstrateonaprojectororcomputer,orprintthepresentationandmakeitintoafilm讲师:XXXX日期:20XX.X月110感谢聆听讲师:XXXX日期:20XX.X月110
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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