4.3运算符和表达式讲述.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.3运算符和表达式讲述

运算符和表达式 lyh 目标 1. 算术运算 2. 关系运算 3. 逻辑运算 4. 赋值运算 5. 自增自减运算 6. 逗号运算 7. 长度运算 8. 条件运算 9. 位运算 10. 类型转换 算术运算 单目运算符 +(正)、-(负) 双目运算符 +(加)、-(减)、*(乘)、/(除)、%(模) %运算要求两个操作数是整数 优先级 单目运算符优先级高于双目运算符 结合性 单目运算符服从右结合,单目运算符服从左结合 算术运算举例 整数除法 printf(%d,7/8*8); 输出结果:0 除数为0 printf(%d,1/0); divide or mod by zero printf(%f,1/0.0); divide or mod by zero 或者 inf 模运算 printf(%d,101%7); 输出结果:3 printf(%d,101%(-7)); 输出结果:3 由实现定义 案例:武功秘籍 小平到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的)。 他注意到:书的第10页和第11页在同一张纸上,但第11页和第12页不在同一张纸上 。 小平只想练习该书的第a页到第b页的武功(ab),又不想带着整本书。 请问他至少要撕下多少张纸带走? 武功秘籍算法分析 目标 1. 算术运算 2. 关系运算 3. 逻辑运算 4. 赋值运算 5. 自增自减运算 6. 逗号运算 7. 长度运算 8. 条件运算 9. 位运算 10. 类型转换 关系运算 关系运算符 优先级 运算符 名称 结合性 单双目 6 大于 左结合 双目 6 = 大于等于 左结合 双目 6 等于 左结合 双目 6 = 小于等于 左结合 双目 7 == 等于 左结合 双目 7 != 不等于 左结合 双目 关系表达式 关系表达式的一般形式 表达式1关系运算符表达式2 举例 for(i=0; i100 ; i++) if(rooster+ hen+ chick ==100) while(new_value - old_valuethreshold_value) 案例:谁打破了玻璃 玻璃被小平,侯哥,萝卜,虎三中一个人打破了,下面有三个人说的是真话,一个人说的是假话,判断是谁干的。 小平:不是我做的。 猴哥:是萝卜做的。 萝卜:是虎三做的。 虎三:他在说谎!。 谁打破了玻璃算法分析 step1. 枚举打破玻璃的依次是小平,侯哥,萝卜,虎三 用 A,B,C,D代表小平,侯哥,萝卜,虎三 for(person=A; person = D; person++) step2. 枚举说真话的逻辑表达式 小平说真话: person!=A 侯哥说真话: person==C 萝卜说真话: person==D 虎三说真话: person!=D if( (person!=A) + (person==C) + (person==D) + (person!=D) == 3 ) 目标 1. 算术运算 2. 关系运算 3. 逻辑运算 4. 赋值运算 5. 自增自减运算 6. 逗号运算 7. 长度运算 8. 条件运算 9. 位运算 10. 类型转换 逻辑运算 逻辑运算符 优先级 运算符 名称 结合性 单双目 2 ! 逻辑非 右结合 单目 11 逻辑与 左结合 双目 12 || 逻辑或 左结合 双目 逻辑表达式的一般形式 表达式1双目逻辑运算符表达式2 单目逻辑运算符表达式 逻辑运算的规则 逻辑运算真值表 a b ab a||b !a 0 0 0 0 1 0 非0 0 1 1 非0 0 0 1 0 非0 非0 1 1 0 a b 当表达式a的为0时,不再执行和判断表达式b的值。 a || b 当表达式a的为1时,不再执行和判断表达式b的值。 逻辑表达式举例 判断year是否是闰年 if((year%4==0 year%100!=0) || year%400==0) 判断直角三角形 if(a0 b0 c0 a*a+b*b==c*c) 判断两个小数是否相等 if(a-b1e-6 a-b-1e-6) if(!(ab) !(ab)) 案例:输出能被11整除且不含有重复数字的所有三位数,并统计其个数。 算法分析 三位数num获取百位,十位,个位 a= num/100; b=num/10%10; c=num%10; 不含重复数字 if(a!=b a!=c b!=c) 能被11整数 if(num%11==0) 源代码 int i,a,b,c,n=0; for(i=100; i=999; i++) /* 遍历所有三位数 */ { c=i%10; b=i/10%10; a= i/100; /*分解

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档