【GESP】C++一级练习 luogu-B2044, 有一门课不及格的学生
一级知识点条件判断练习,提供两种解题思路。
luogu-B2044
题目要求
描述
给出一名学生的语文、数学、英语成绩,判断他是否恰好有一门课不及格(成绩小于 $60$ 分)。若该学生恰好有一门成绩不及格输出 $1$,否则输出 $0$。
输入
一行包含三个 $0 \sim 100$ 之间的整数,分别表示该生的语文、数学、英语成绩。
输出
该学生恰好有一门成绩不及格输出 $1$,否则输出 $0$。
输入样例-1
1
59 60 61
输出样例-1
1
1
输入样例-2
1
59 50 59
输出样例-2
1
0
输入样例-3
1
100 100 90
输出样例-3
1
0
题目分析
这是一道简单的条件判断题,需要判断一个学生的语文、数学、英语成绩是否恰好有一门不及格(成绩小于 $60$ 分)。我们可以使用条件判断语句来判断,如果一个学生恰好有一门成绩不及格,那么他的成绩应该有两门大于等于 $60$ 分,一门小于 $60$ 分。
我们可以使用三个条件判断来判断这个情况,分别是:
- 如果语文和数学都大于等于 $60$,并且英语小于 $60$,则输出 $1$;
- 如果语文小于 $60$,并且数学和英语都大于等于 $60$,则输出 $1$;
- 如果数学小于 $60$,并且语文和英语都大于等于 $60$,则输出 $1$;
- 如果上述条件都不满足,输出 $0$。
示例代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
int main() {
int a, b, c; // 定义三个整数变量a, b, c
cin >> a >> b >> c; // 从输入流中读取a, b, c的值
// 判断条件:如果a和b都大于等于60,并且c小于60,则输出1
if ((a >= 60 && b >= 60) && c < 60) {
cout << 1;
}
// 判断条件:如果a小于60,并且b大于等于60,并且c大于等于60,则输出1
else if ((a < 60 && b >= 60) && c >= 60) {
cout << 1;
}
// 判断条件:如果a大于等于60,并且b小于60,并且c大于等于60,则输出1
else if ((a >= 60 && b < 60) && c >= 60) {
cout << 1;
}
// 如果上述条件都不满足,则输出0
else {
cout << 0;
}
return 0; // 返回0,表示程序执行成功
}
另一种更简单的解法是,直接统计小于60的科目数量。最后判断数量是1就输出1,否则输出0。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
using namespace std;
int main() {
int a, b, c; // 定义三个整数变量a, b, c
cin >> a >> b >> c; // 从输入流中读取a, b, c的值
int count = 0; // 初始化计数器count为0
// 检查a是否小于60,并增加计数器
if (a < 60) {
count++;
}
// 检查b是否小于60,并增加计数器
if (b < 60) {
count++;
}
// 检查c是否小于60,并增加计数器
if (c < 60) {
count++;
}
// 如果计数器的值为1,则输出1,否则输出0
if (count == 1) {
cout << 1;
} else {
cout << 0;
}
return 0; // 返回0,表示程序执行成功
}
所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code
题目已加入洛谷Java、C++初学团队,作业清单,可在线评测,团队名额有限,欢迎加入。
本文由作者按照 CC BY 4.0 进行授权