报数游戏
游戏规则:
参与者从1开始,按顺序轮流报数,如果遇到所报的数
能够被3整除,或者能够被5整除,则说"过”,说错则
淘汰出局,坚持到最后的为获胜者。
程序里如何判断呢?3
5 6 9 10 12 15
其中一个成立
if(x%3==0或者x%5==0)
cout <<"guo"<<endl;
逻辑关系
哪吒对敖丙说:“今天天气很好,我们可以去公园跑步,或者去香山爬山。
太乙真人说:“这次期末测评,控火术和变身术都得了A,就奖励一台新的平板电脑,


或者就是一种逻辑关系
表示"或者 or ----> ||
//逻辑 或
#include<bits/stdc++.h>//万能头文件
using namespace std;
int main(){
int x;cin>>x;
if(x%3==0||x%5==0){
cout<<"过儿"<<endl;
}
return 0;
}
逻辑或||
逻辑或是对两个条件进行或者关系的运算,两个条件其中之一成立,运算结果就成立
x%3==0‖x%5==0
先计算两个条件再算逻辑或。
语法格式:A‖B
用于计算或者关系,计算结果是一个布尔值
其中之一为真即为真,两个都为假才为假
表示"并且
输入一个整数x,判断x能否被3整除,并且能被5整除
15 30 45 60 75 90
if(x%3==0 && X%5==0)
cout <<"YES"<<endl;
逻辑与&&
逻辑与是对两个条件进行并且关系的运算,两个条件都成立,运算结果才成立,其中之一不成立,结果就不成立。x%3==0&&x%5==0
先计算两个条件,再算逻辑与。
语法格式:A&&B
用于计算并且关系,计算结果是一个布尔值
//逻辑 与
#include<bits/stdc++.h>//万能头文件
using namespace std;
int main(){
int x;cin>>x;
if(x%3==0&&x%5==0){
cout<<"过儿"<<endl;
}
return 0;
}
逻辑非!
语法格式:!A
表示否定,对布尔值取反
非真为假、非假为真
语法格式:!A
表示否定,对布尔值取反
可以对任何数据,进行逻辑非运算
运算符的优先级
逻辑与高于逻辑或!
已知int a=2,b=3,c=4;计算以下表达式的结果
!a+b
!a>b||b*c
(GESP二级)如果a和b均为int类型的变量,下列表达式不能正确判断"a等于b且b等于0"的是(B)
A.(a==0)&&(b==0)
B.(a==b==0)
C.(!a)&&(lb)
D.(a==0)+(b==0)==2
逻辑运算符
逻辑运算符用于计算逻辑关系,其计算结果是一个布尔值。
A小括号优先级最高
B单目运算符高于双目运算符高于三目运算符!□ □+□
C双目运算符:
D算术高于比较高于逻辑高于赋值
E运算符优先级相同,按照从左往右的顺序进行计算,只有赋值运算符是从右往左计算。
F要两个操作数参与运算的运算符,称为双目运算符,例如+%
G需要三个操作数参与运算的运算符,称为三目运算符.
课堂训练:
3036 判断闰年
描述
编写一个程序,输入一个年份,判断是否为闰年。
闰年:四年一闰、百年不闰,四百年再闰。
输入描述
一个正整数n,表示输入的年份,1582≤n≤10000
输出描述
一行字符串,"YES"表示是闰年,"NO"表示不是闰年。
样例输入 1
2020
样例输出 1
YES
样例输入 2
2022
样例输出 2
NO
能被4整除并且不能被100整除,或者能被400整除
//判断闰年
#include<bits/stdc++.h>//万能头文件
using namespace std;
int main(){
int n;cin>>n;//能被4整除并且不能被100整除,或者能被400整除
if(n%4==0&&n%100!=0||n%400==0){//4年一闰,百年不闰,四百年再闰
cout<<"YES";
}
else{
cout<<"NO";
}
return 0;
}
if-else多分支语句
f(条件1)语句1;
else if(条件2)语句2;
else if(条件n)语句n;
else语句n+1;
A当条件为真,则执行对应的语句,并终止整个多分支语句的执行;条件都不成立,则执行else语句。else if的数量可以有任意多个。最后的else语句不是必须的。
B当有多个条件成立时,只会执行第一个满足条件的语句。
3037 判断成绩等级
描述
编写一个判断学习成绩的程序,输入期末考试的单科成绩,判断并输出成绩等级。
输入描述
输入一个正整数x,表示分数,0≤x≤100
输出描述
一行,一个字符,分数所属的等级
样例输入 1
80
样例输出 1
B
样例输入 2
95
样例输出 2
A
//判断成绩等级
#include<bits/stdc++.h>//万能头文件
using namespace std;
int main(){
int score;//成绩
char grade;//等级
cin>>score;
if(score>=90){
grade='A';
}
else if(score>=70){
grade='B';
}
else if(score>=60){
grade='C';
}
else {
grade='D';
}
cout<<grade;
return 0;
}
switch语句
//switch
#include<bits/stdc++.h>//万能头文件
using namespace std;
int main(){
int n;
cin>>n;
switch (n) {
case 1:
cout<<"park";
//TODO
break;
case 2:
cout<<"library";
//TODO
break;
case 3:
cout<<"hill";
//TODO
break;
default:
cout<<"homework";
//TODO
break;
}
return 0;
}
break关键字:中止 结束
用于结束整个switch语句
通过匹配的case找到分支的入口,通过break找到分支的出口(终止)
//switch
#include<bits/stdc++.h>//万能头文件
using namespace std;
int main(){
int n;
cin>>n;
switch (n) {
case 1:
cout<<"park";
//TODO
// break;
case 2:
cout<<"library";
//TODO
// break;
case 3:
cout<<"hill";
//TODO
// break;
default:
cout<<"homework";
//TODO
// break;
}
return 0;
}
switch语句的执行规则
根据switch后面表达式的值,找到匹配的case,执行相应的语句;找不到匹配的case,则执行default语句。
例如5、'A'、true都可以作为case后面的数值
case和数值之间使用空格隔开;数值后面要有冒号:,后面是当前case对应执行的语句
使用default关键字定义默认语句。所有case都不匹配时,执行default语句。可以有也可以没有。
defaulti语句不一定写在最后,可以在任意位置。找不到匹配的case时,才会执行default语句,与default语句的编写位置无关
课后作业:
3047 自定义的计算器
描述
自定义的计算器只需要支持+,-,*,/,%五种运算即可。编写程序:完成一个自定义的计算器,输入两个数和一个运算符,输出其计算结果。
输入描述
一行,两个整数x,y和一个字符,三个内容中间使用空格分隔。(1≤x, y≤1000)
输出描述
一个整数,代表计算结果。
样例输入 1
5 % 2
样例输出 1
1
样例输入 2
2 * 4
样例输出 2
8