版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1第四章选择结构程序设计2一、关系运算符和关系表达式二、逻辑运算符和逻辑表达式三、实现选择结构的控制语句四、选择结构程序举例主要内容3一、关系运算符和关系表达式关系运算符<<=>>===!=(6种)优先级赋值<关系(后2<前4)<算术关系表达式用关系运算符将两个表达式连接起来的式子.值真(1)假(0)举例已知:(a=3b=2c=1d=0)0a==b>cd==a>b+c15>3?算术、关系、逻辑、赋值、字符。4二、逻辑运算符和逻辑表达式逻辑运算符!&&||运算规则优先次序赋值<
&&和||
<关系<算术<!(1)!:取逻辑值的相反值。(2)&&:参加运算的两个逻辑值都为真时,结果为真(1)。(3)||:参加运算的两个逻辑值都为假时,结果为假(0)。逻辑表达式用逻辑运算符将关系表达式和逻辑量连接起来的式子。举例已知:(a=1b=0)1a||b&&0!a&&(5>3)||b05举例5>3&&8<4-!00二、逻辑运算符和逻辑表达式(5>3)&&(8<(4-!0))4&&5>3||21注意逻辑运算符两侧的运算对象不但可以是0和1,也可以是0或非0的整数,也可是任何类型的数据。系统判定标准:0为假;非0为真。6三、实现选择结构的控制语句(一)、选择结构的三种分支(二)、单分支(三)、双分支(四)、多分支7(一)、选择结构的三种分支选择结构单分支双分支if(表达式)语句多分支if(表达式)语句1else语句2if(表达式1)语句1elseif(表达式2)语句2……else语句nif语句的嵌套switch语句8格式举例if(x>y)printf(“%d”,x);if(表达式)语句(二)、单分支intmain(){floata,b,t=0;scanf(“%f,%f”,&a,&b);if(a>b){t=a;a=b;b=t;}printf(“%5.2f,%5.2f\n”,a,b);return0;}3,43.00,4.00……t=0;if(a>b)t=a;a=b;b=t;…………t=0;if(a>b)t=a;a=b;b=t;……3,44.00,0.00当某些语句作为一个整体出现的时候,必须是复合语句的形式。9一般格式if(表达式)语句1;
如果表达式为真,执行语句1;否则什么都不做.if(表达式) {
语句块1;
}
如果表达式为真,做语句块1的内容;否则什么都不做;10格式举例if(x>y)printf(“%d”,x);elseprintf(“%d”,y);(三)、双分支voidmain(){floata,b,c,p,s;scanf(“%f,%f,%f”,&a,&b,&c);if(a+b>c&&a+c>b&&b+c>a)
{p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c));printf(“s=%7.2f\n”,s);}elseprintf(“Notatriangle!\n”);}if(表达式)语句1else语句2输入三角形的三边,求三角形的面积。输入a,b,c是三角形吗?YNp(a+b+c)/2ssqrt(p*(p-a)*(p-b)*(p-c))输出s输出“非三角形!”3,4,5s=6.003,4,8Notatriangle!11
下面我们画出分支程序的N-S流程图,这种图直观清晰,一目了然。条件为真吗?是否语句块1语句块212if(表达式)语句1;
else语句2; 如果表达式为真,执行语句1;否则执行语句2if(表达式)//如果表达式为真,执行语句块1 {
语句块1;
} else//否则,执行语句块2 {
语句块2;
}13条件运算符条件表达式举例if(a>b)max=a;elsemax=b;(三)、双分支表达式1?表达式2:表达式3max=(a>b)?a:b;14格式举例(四)、多分支(一)if(cost>3000)cash=500;elseif(cost>2000)cash=300;elseif(cost>1500)cash=200;elseif(cost>1000)cash=100;elsecash=0;if(表达式1)语句1elseif(表达式2)语句2……else语句n151617….
if(x>0){y=1;}//如果x>0,将1赋给y elseif(x==0){y=0;} //如果x==0,将0赋给y else {y=-1;} //否则(x<0),将-1赋给y…..18举例(四)、多分支(二)已知a=3b=4c=5d=0,d=?if(a>b)
d=a;else
if(c>b)d=c;elsed=b;if(a>b)
if(c>b)d=c;elsed=b;if(a>b)
{if(c>b)d=c;}elsed=b;if(a>b)
if(c>b)d=c;elsed=b;elsed=a;d=5d=3d=0d=419开关语句举例switch(表达式){……}(四)、多分支(三)……chargrade;scanf(“%c”,&grade)switch(grade){case‘A’:printf(“85~100\n”);break;case‘B’:printf(“70~84\n”);break;case‘C’:printf(“60~69\n”);break;case‘D’:printf(“<60\n”);break;default:printf(“error\n”);}……B70~84说明P7220四、选择结构程序举例例2求方程ax2+bx+c=0的解.(各种形式)真a=0真假输出“非二次方程”b2-4ac=0真输出两个实根:x1,x2输出两个相等实根:假b2-4ac>0假计算复根的实部和虚部:实部虚部输出两个复根:p+qi,p-qi21#include<math.h>intmain(){floata,b,c,disc,x1,x2,realpart,imagpart;scanf("%f,%f,%f",&a,&b,&c);printf("Theequation");if(fabs(a)<=1e-6)printf("isnotaquadratic");else
{disc=b*b-4*a*c;
if
(fabs(disc)<=1e-6)printf("hastwoequalroots:%8.4f\n",-b/(2*a));
else
if(disc>1e-6)
{x1=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);printf("hasdistinctrealroots:%8.4fand%8.4f\n",x1,x2);}
else{realpart=-b/(2*a);imagpart=sqrt(-disc)/(2*a);printf("hascomplexroots:\n");printf("%8.4f+%8.4fi\n",realpart,imagpart);printf("%8.4f+%8.4fi\n",realpart,imagpart);
}
}return0;}1.读程序写结果voidmain(){intx=1,y=0,a=0,b=0;switch(x) { case1: switch(y) { case0:a++;break; case1:b++;break; } case2: a++;b++;break; }printf("a=%d,b=%d\n",a,b);}2.输入三个整数,输出最大数和最小数intmain(){inta,b,c,max,min;printf("请输入3个数:\n");scanf("%d%d%d",&a,&b,&c);if(a>b){max=a;min=b;}elsemax=b;min=a;if(c>max)max=c;if(c<min)min=c;printf("%d%d",max,min);return0;}3.设计一个简单的计算器程序。要求根据用户从键盘输入的表达式,计算表达式的值。运算符+-*/例如:Pleaseentertheexpression:22+322+3=253.intmain(){charc;inta,b;printf("pleaseentertheexpression:");scanf("%d%c%d",&a,&c,&b);switch(c){case'+':printf("%d+%d=%d\n",a,b,a+b);break;case'-':printf("%d-%d=%d\n",a,b,a-b);break;case'*':printf("%d*%d=%d\n",a,b,a*b);break;case'/':printf("%d/%d=%d\n",a,b,a/b);break;}return0;}intmain(){inta,b,c;printf("请输入三角形三边:\n");scanf("%d%d%d",&a,&b,&c);if(a+b>c&&a+c>b&&b+c>a) {if(a==b&&b==c&&c==a) printf("等边三角形"); elseif(a==b||b==c||c==a) {printf("等腰三角形");
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 叉车司机聘请合同模板
- 商场销售道具合同模板
- 出租仓库合同模板模板
- 产品销售代理合同模板
- 付费婚介服务合同模板
- 公寓房交易合同模板
- 企业退税服务合同模板
- 书籍翻译合作合同模板
- 喷漆工合作合同模板
- 医生自费进修合同模板
- DBJ61-T 106-2015 村镇砌体结构民居叠层橡胶支座隔震技术规程-(高清版)
- 儿童口才面试测评表
- DB11-T 1028-2021 民用建筑节能门窗工程技术标准 清晰正式版
- (完整)脑出血护理查房ppt
- 公开课《桂花雨》教学设计与反思
- (机动)翻斗车检查验收表
- 芜莱市实验中学教师专业发展实施方案
- 小学生作文开头方法指导课件
- 人教人音版九年级音乐下册《丝路花雨》课件
- Unit1课文语法填空-高中英语牛津译林版(2020)选择性必修第一册
- 隋唐文化 完整版课件
评论
0/150
提交评论