计讲稿4——关系运算符、逻辑运算符.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计讲稿4——关系运算符、逻辑运算符
程序设计讲稿4 本讲涉及的单词1、if 如果2、else 否则3、switch 开关4、case 案例、事例5、default 缺省、默认6、break 打断
一、关系运算符及其优先级1、关系运算符程序中经常需要比较两个量的大小关系,以决定程序的下一步工作,比较两个量的大小关系的运算符称为关系运算符,C/C中有以下关系运算符大于大于等于、、cd、xc、acd 关系表达式运算的结果只有两种真或假正确或错误,成立或不成立,用数字1和0表示。
例如53 的运算结果是1正确,而3k1; printf“d,d\n“,14 ” 可以省略,上面的格式写成了两行,其实可以写成一行的,这样做只是为了程序更加美观。
例7、编程输入两个整数,输出其中的大数。
解答程序1 解答程序2 int main { int a,b,MAX; scanf“dd“, MAXa; ifMAXb MAXa; else MAXb; printf“MAXd\n“,MAX; return 0; } 解答程序1中,先把a的值赋给变量MAX,再用if语句判别MAX和b的大小,如果MAXb,则把a的值赋给MAX,否则把b赋给b。
这里的否则相当于ab MAXa; ifa 0 else MAXb; 可以改写为MAX ab a b; 条件运算符的优先级高于赋值运算符,低于算术运算符、关系运算符和逻辑运算符。
请用关系运算符改写例7的程序。
五、开关语句C/C语言还提供了另一种用于多分支选择的语句switch语句,其一般形式如下形式switch表达式{ case 常量表达式1语句 1 case 常量表达式2语句 2 case 常量表达式n语句n default语句n+1 } 其含义是计算表达式的值,然后依次与case后面的常量表达式的值比较。
当与某个常量表达式的值相等时,即执行其后面的语句,然后不再判断,转而执行后面的所有case后的语句包括default语句。
当表达式的值与所有case后面常量表达式的值都不相等时,则执行default后的语句。
例9、编程输入一个数字,输出与这个数字对应星期几的英语单词,比如输入1,则应是星期一,输出“Monday”,7则应是星期日,输出“Sunday”。
解答程序1 int main { int a; scanf“d“, switcha { case 1 printf“Monday\n“; case 2 printf“Tuesday\n“; case 3 printf“Wednesday\n“; case 4 printf“Tursday\n“; case 5 printf“Friday\n“; case 6 printf“Saturday\n“; case 7 printf“Sunday\n“; default printf“error\n“; } return 0; } int main { int a; scanf“d“, switcha { case 1 printf“Monday\n“; break; case 2 printf“Tuesday\n“;break; case 3
printf“Wednesday\n“;break; case 4 printf“Tursday\n“;break; case 5 printf“Friday\n“;break; case 6 printf“Saturd ay\n“;break; case 7 printf“Sunday\n“;break; default printf“error\n“;break; } return 0; } 解答程序1当输入4后,则程序输出Tursday Friday Saturday Sunday error 由此看来,整数上面对switch语句含义的解释,当表达式与某个常量值相等时,则从这里开始所有的case后面的语句都会执行。
解答程序2当输入4后,程序输出Tursday 因为在每条case后面的语句后加上了一个break;这里的break表示中断switch语句的执行。
所以当输出Tursday后,再执行break;这时,跳出的switch 语句,所以后面case语句再不会被执行。
使用switch语句的要注意以下几点1 case语句后的常量表达式的值不能有相同的;2 case后可以有多条语句,他们不必用{}括起来3 default可以省略。
思考请用if语句改写上面的程序。
六、编程实例例10、打折P1013 一件衣服950元,若消费满3000元,可打八五折。
输入购买衣服件数,输出需要支付的金额(单位元),保留两位小数。
【输入】一个整数N,表示顾客购买衣服数量。
【输出】一个实数,表示需要支付的金额。
保留两位小数。
【样例】4 3230.00 2 1900.00 【数据范围】0 3000 则输出p*0.85;否则输出p 保留两位小数例11、三整数排序P1015 输入三个整数a,b,c,从小到大排序后输出。
【输入】一行三个整数a,b,c。
【输出】由小到大输出这三个数。
整数之间用一个空格分开。
【样例】20 7 33 7 20 33 解法程序int main { int a,b,c; scanf“ddd“, // 输入a,b,c的值ifab { ta; ab; bt; } //如果ab,则交换a,b的值;ifac { ta; ac; ct; } //如果ac,则交换a,c的值;ifac { ta; ac; ct; } //如果bc,则交换b,c的值;printf“d d d\n“,a,b,c; //输出答案输出a,b,c的只值return 0; } 关于程序的一点解释语句ifab { ta; ab; bt; } 因为如果满足条件ab要执行三句话,ta; ab; bt;如果条件不满足,这三句话就不会执行。
所以用{}把这三句括起来,这样的语句称为复合语句。
如果写成这样ifab ta; ab; bt; 则满足条件ab,就只会执行ta;而不满足,则ab和bt;还会照样执行。
例12、三角形P1017 输入三角形三边长度值a,b,c(均为正整数),完成下列任务(1)、如果这三边根本无法构
成三角形,则输出“not a triangle”。
(2)、如果能构成三角形,则计算这个三角形的面积并输出。
(3)、然后再判断这个三角形是否是直角三角形,如果是则输出“yes”,否则输出“no”。
【输入】一行三个正整数a,b,c。
【输出】如果a,b,c不能构成三角形,则输出一行“not a triangle”。
如果能构成一个三角形,则第1 行一个保留2位小数的实数,表示三角形面积;第2 行如果这个三角形是一个直角三角形,则输出“yes”,否则输出“no”。
【样例输入】3 4 5 6.00 yes 2 2 2 1.73 no 4 2 7 not a triangle 【数据范围】10,且y0”,则该题目解是x和y,否则输出No answer。
x和y必须为正整数程序的语言描述用c语言补充完整定义n,m,x,y四个整数变量; 输入变量n,m的值; x4n-m/2; ym-2n/2; 如果m是偶数且x0且y0 输出x和y的值,中间隔一个空格否则输出No answer int main { ifm 20 } 课后作业题库P1013P1035。