- lishilin 的博客
3 月 6 日课堂笔记
- @ 2025-3-6 16:40:57
运算符
算术运算符
负责数字运算的:+,-,*,/,%;
我们规定,% 叫做模运算(mod)。
关于模运算常考:
- 的最大值为
- 去掉循环节,例如
a-z字母的循环,日期问题
例子:循环输出26个字母
#include <bits/stdc++.h>
using namespace std;
int main() {
for (int i = 0; i < 52; i++) {
char a = ('a' + i % 26);
// ASCII码 97 -- a
cout << a;
}
}
比较运算符
作用是:比较两个数字之间的关系(大于,小于,大于等于,小于等于,等于,不等于)
返回值:布尔值(true 或则 false)==> 1 或者 0。
例子:
#include <bits/stdc++.h>
using namespace std;
int main() {
int x = (2 >= 1) * 30;
int y = (1 >= 2) * 30;
cout << y << endl;
cout << x << endl;
}
逻辑运算符
作用:将多个条件合并起来(和、或者)
写作:&& 或者 ||
#include <bits/stdc++.h>
using namespace std;
int main() {
// 判断 x 是否在 1 到 10 之间
int x = 3;
if (x+1 >= 1 && x <= 10)
// 判断 x 是否小于 1 或者 大于 10
if (x < 1 || x > 10)
}
优先级关系
算术 > 比较 > 逻辑
- 先算出来,才能比较,比较完才能合并
分支语句
单分支
只有一条if语句,未必会执行,只有if里面的条件满足才会执行。
#include <bits/stdc++.h>
using namespace std;
int main() {
// 判断 x 是否在 1 到 10 之间
int x = 3;
if (x+1 >= 1 && x <= 10) {
cout << 'Y';
}
}
双分支
if - else:一定会执行其中一条,if不执行就会执行else。
#include <bits/stdc++.h>
using namespace std;
int main() {
// 判断 x 是否在 1 到 10 之间
int x = 10;
if (x+1 >= 1 && x+1 <= 10) {
cout << 'Y';
} else {
cout << 'N';
}
}
多分支
if - else if - else if:可能执行,也可能不执行,如果执行,一定只会执行其中一条。
例子:从上往下依次判断,只有上面的条件不满足,才会看下面的判断条件,一旦满足,只会执行这一部分代码。
#include <bits/stdc++.h>
using namespace std;
int main() {
int x = 27;
if (x % 3 == 0) cout << "3\n";
else if (x % 9 == 0) cout << "9\n";
else if (x % 27 == 0) cout << "27\n";
}
int main() {
int x = 1;
if (x % 3 == 0) cout << "3\n";
else if (x % 9 == 0) cout << "9\n";
else if (x % 27 == 0) cout << "27\n";
else {
cout << "N\n";
}
}
关于 else
一旦写了,分支结构一定执行其中一条(程序不崩溃的前提下)。
else 可写可不写。
短路
所有逻辑运算符都是短路运算符。 计算机是聪明的,对于早就得到结果的表达式,是不会执行多余运算的。
例子:
#include <bits/stdc++.h>
using namespace std;
int main() {
int x = 10;
if (x >= 10 || x / 0) {
cout << 'Y';
}
if (x >= 10 && x / 0) {
cout << 'Y';
}
}
考点
纯语法题
单纯考会不会使用分支结构来进行简单的判断
分类讨论
对所有情况都写一个相应的代码片段,来执行特定的计算。