返回 课程
信奥AC之路-1级
0% 完成
0/0 步骤
-
第1课 开发环境与基础输出5 主题|小节
-
第2课 算术运算符7 主题|小节
-
第3课 printf与运算输出7 主题|小节
-
第4课 数的进制与拆位6 主题|小节
-
第5课 变量与基础运算17 主题|小节
-
第6课 常量与取整运算8 主题|小节
-
第7课 关系运算8 主题|小节
-
第8课 逻辑运算9 主题|小节
-
第9课 输入与计算进阶10 主题|小节
-
第10课 if语句及双分支语句8 主题|小节
-
第11课 if语句及双分支进阶11 主题|小节
-
第12课 三目运算9 主题|小节
-
第13课 多分支、多if和switch语句11 主题|小节
-
第14课 循环(基本输出)7 主题|小节
-
第15课 循环(While+If)8 主题|小节
-
第16课 循环(计数、求和、求乘积)7 主题|小节
-
第17课 循环进阶(While+)
-
第18课 do-while及while其他用法
-
第19课 For循环基础
-
第20课 For循环进阶
课 进展
0% 完成
11.2.1 区间条件判断
“在实际问题中,我们经常需要判断某个值是否在特定区间内,”我解释道,”这时候,我们需要使用复合条件来表达区间约束。”
实验三:是否适合晨练
题目描述:输入温度t的值,判断其是否适合晨练,适合晨练输出YES,不适合输出NO。(20≤t≤30,则适合晨练YES,否则不适合NO)。
样例输入:
25
样例输出:
YES
样例输入:
15
样例输出:
NO
思路分析: 需要判断温度是否在20到30的闭区间内。可以使用”与”运算连接两个条件,或者使用”或”运算连接区间外的条件然后取反。在第一个样例中,25在[20,30]区间内,所以适合晨练。在第二个样例中,15不在[20,30]区间内,所以不适合晨练。
代码实现:
// 方法一:默认值加条件更新
#include <iostream>
using namespace std;
int main() {
int t;
string st = "NO"; // 默认结果为NO
cin >> t;
if(t >= 20 && t <= 30) { // 判断温度是否在区间内
st = "YES"; // 如果在区间内,更新结果为YES
}
cout << st;
return 0;
}
// 方法二:反向条件判断
#include <iostream>
using namespace std;
int main() {
int t;
cin >> t;
string st = "YES"; // 默认结果为YES
if(t < 20 || t > 30) { // 判断温度是否在区间外
st = "NO"; // 如果在区间外,更新结果为NO
}
cout << st;
return 0;
}
// 方法三:提前返回方式
#include <iostream>
using namespace std;
int main() {
int t;
cin >> t;
if(t >= 20 && t <= 30) { // 判断温度是否在区间内
cout << "YES"; // 如果在区间内,输出YES
return 0; // 结束程序
}
cout << "NO"; // 如果不在区间内,输出NO
return 0;
}
// 方法四:提前返回的反向判断
#include <iostream>
using namespace std;
int main() {
int t;
cin >> t;
if(t < 20 || t > 30) { // 判断温度是否在区间外
cout << "NO"; // 如果在区间外,输出NO
return 0; // 结束程序
}
cout << "YES"; // 如果在区间内,输出YES
return 0;
}
// 方法五:两个独立的if语句
#include <iostream>
using namespace std;
int main() {
int t;
cin >> t;
if(t >= 20 && t <= 30) { // 判断温度是否在区间内
cout << "YES"; // 如果在区间内,输出YES
}
if(t < 20 || t > 30) { // 判断温度是否在区间外
cout << "NO"; // 如果在区间外,输出NO
}
return 0;
}
// 方法六:if-else判断区间
#include <iostream>
using namespace std;
int main() {
int t;
cin >> t;
if(t >= 20 && t <= 30) { // 判断温度是否在区间内
cout << "YES"; // 如果在区间内,输出YES
} else { // 否则(不在区间内)
cout << "NO"; // 输出NO
}
return 0;
}
// 方法七:if-else判断区间外
#include <iostream>
using namespace std;
int main() {
int t;
cin >> t;
if(t < 20 || t > 30) { // 判断温度是否在区间外
cout << "NO"; // 如果在区间外,输出NO
} else { // 否则(在区间内)
cout << "YES"; // 输出YES
}
return 0;
}
思考:
- 方法一使用默认值并在条件满足时更新,结构清晰
- 方法二使用反向思维,判断区间外的条件
- 方法三和方法四使用提前返回避免额外变量
- 方法五使用两个独立的if语句分别处理两种情况
- 方法六和方法七使用if-else结构确保只有一个分支被执行
- 区间判断是日常编程中的常见场景,掌握它的不同表达方式很重要