![d93d753d9a53c779be90369a1a33da92.png](https://img-blog.csdnimg.cn/img_convert/d93d753d9a53c779be90369a1a33da92.png)
示例3.8:
![b3a18d2cce99b23de3b72c0c3e95a470.png](https://img-blog.csdnimg.cn/img_convert/b3a18d2cce99b23de3b72c0c3e95a470.png)
应该就是输入两科成绩,判断数学也判断语文,都成立才先进。
注意,实际不能向下面这样写,这是个错误练习,虽然结果看着没问题:
//practice 3.8
![8a506b0c10b34564bcd072ec650fd48b.png](https://img-blog.csdnimg.cn/img_convert/8a506b0c10b34564bcd072ec650fd48b.png)
![e77949e43ec1fa96318c309f0bd8f6c3.png](https://img-blog.csdnimg.cn/img_convert/e77949e43ec1fa96318c309f0bd8f6c3.png)
虽然结果是可以的,但是姐姐说不能用& ,这是按位与,逻辑上是不对的。
书上给出的答案:
//exam 3.8
![c44806e358baa2254f3863caf672cfdc.png](https://img-blog.csdnimg.cn/img_convert/c44806e358baa2254f3863caf672cfdc.png)
![960e29f44df203649ac088f455406205.png](https://img-blog.csdnimg.cn/img_convert/960e29f44df203649ac088f455406205.png)
书上给出的用了cmath 然后中间连接符用的是两个&,也许这又是c++ 和py的不同吧,继续看看:
1、逻辑运算和逻辑表达式
逻辑运算符:
逻辑与逻辑或逻辑非&&||!优先级别:
![5a989dc20ea8df46910cd9981757a3ac.png](https://img-blog.csdnimg.cn/img_convert/5a989dc20ea8df46910cd9981757a3ac.png)
定义:
将两个关系表达式用逻辑运算符连接起来的表达式,称为逻辑表达式。
一般形式:
表达式 逻辑运算符 表达式
示例3.9:
根据问题写出条件表达式:
问题条件表达式判断一个数n是否可以同时被2与3整除if (n%2==0 && n%3==0);判断一个数x是否在区间[1,5]之内if (n>=1 && n<=5);判断一个数x是否等于0if (x==0);书上给出的:最后一个还蛮有意思的:
问题条件表达式d>判断一个数n是否可以同时被2与3整除d>if (n%2==0 && n%3==0); 或者 if(n%6==0)判断一个数x是否在区间[1,5]之内if (n>=1 && n<=5); 或者if(!(x<1||x>5))判断一个数x是否等于0正向判断 if (x==0); 反向判断 if(x!=0) 或者 if(!x) 问题条件表达式判断一个数n是否可以同时被2与3整除if (n%2==0 && n%3==0); 或者 if(n%6==0)判断一个数x是否在区间[1,5]之内if (n>=1 && n<=5); 或者if(!(x<1||x>5))判断一个数x是否等于0正向判断 if (x==0); 反向判断 if(x!=0) 或者 if(!x)示例3.10:
输入年份year,输出该年是否是闰年。
闰年的条件是:年份能被4整除但不能被100整除或者能被400整除。
//practice 3.10
![00714d578f86183182cbcd2385d523f2.png](https://img-blog.csdnimg.cn/img_convert/00714d578f86183182cbcd2385d523f2.png)
![0c9c7795228fb88ea6f7595008dbeef3.png](https://img-blog.csdnimg.cn/img_convert/0c9c7795228fb88ea6f7595008dbeef3.png)
哇!第一次和书上的代码一模一样诶!!! 开心!
示例3.11:
![2de966fcf2269bbd612145db45a0e5ec.png](https://img-blog.csdnimg.cn/img_convert/2de966fcf2269bbd612145db45a0e5ec.png)
这个前面有过类似的,但是没判断输入的能不能组成三角形:
任意两边之和大于第三边那就能组成。
//practice 3.11
![008c184b8bba4761dc24d6ee37c5d67b.png](https://img-blog.csdnimg.cn/img_convert/008c184b8bba4761dc24d6ee37c5d67b.png)
![3e93b18eb260fa787fdf6bd5803097a3.png](https://img-blog.csdnimg.cn/img_convert/3e93b18eb260fa787fdf6bd5803097a3.png)
道理上是没错,结果也是可以的,但是尽量把求面积和半径写在里面,因为判断完是才计算更好,我这样写就是不管行不行,咱先计算。。。没必要。
建议,书上这么写的:
//exam 3.11
别忘了是大括号括起来
2、逻辑变量
定义:
逻辑变量用类型标识符bool来定义,它的值只有true 或false两种。
由于逻辑变量是用bool来定义的,因此又称布尔变量。
false处理为0;true处理为1
如果将一个非0整数赋值给逻辑变量,则按”真“处理。
3、条件表达式
格式:
<表达式1>?<表达式2>:<表达式3>
概念:
条件表达式要求有3个操作对象,?和: 一起出现在条件表达式中,称三目(元)运算符,它是C++中唯一的一个三目运算符。
规则:
![bd87c1d049dc1f32f158bca17162dfb4.png](https://img-blog.csdnimg.cn/img_convert/bd87c1d049dc1f32f158bca17162dfb4.png)
示例3.13:
解释下列条件表达式的作用:
条件表达式作用int maxn=(a>b)?a:ba和b中较大的数赋值给ncout<<((num%2==0?"num is even": "num is odd")<<endl;num是偶数就输出even,反之是oddy=(x>0)?1:-1;x是正数,1赋值给y,反之,-1赋值给y示例3.14:
![e10ab5960895e3c58b4dbf41663cbc32.png](https://img-blog.csdnimg.cn/img_convert/e10ab5960895e3c58b4dbf41663cbc32.png)
//practice 3.14
不会写了。。。 三元运算符看着好厉害,也可以读懂,但就是。。自己写起来。。。好难
这个好有趣要多思考啊~
看看书上咋写的吧:
要分析,满足的条件是啥:当满足条件ch>='A'&ch<='Z'时为大写字母,将它转换为小写字母,大写字母ASCII码加32即是小写字母。
//exam 3.14
![642118a6db7d8225af647cc09f6a20c1.png](https://img-blog.csdnimg.cn/img_convert/642118a6db7d8225af647cc09f6a20c1.png)
![21c2d884d51bda6aaf1f641546a2652d.png](https://img-blog.csdnimg.cn/img_convert/21c2d884d51bda6aaf1f641546a2652d.png)
![8ad128b1bcda39289daf97eb0ac5b1ae.png](https://img-blog.csdnimg.cn/img_convert/8ad128b1bcda39289daf97eb0ac5b1ae.png)
作业:
1、
![88c9bfd3672044175d6c73536b1c39c1.png](https://img-blog.csdnimg.cn/img_convert/88c9bfd3672044175d6c73536b1c39c1.png)
#include
![7ffeed0238d2dcd35d863085c724260f.png](https://img-blog.csdnimg.cn/img_convert/7ffeed0238d2dcd35d863085c724260f.png)
![c58cf3f696dc24e67cfd867135bb00d5.png](https://img-blog.csdnimg.cn/img_convert/c58cf3f696dc24e67cfd867135bb00d5.png)
![4f30639d9094880472eff484355a914b.png](https://img-blog.csdnimg.cn/img_convert/4f30639d9094880472eff484355a914b.png)