文章

【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$ 分。

我们可以使用三个条件判断来判断这个情况,分别是:

  1. 如果语文和数学都大于等于 $60$,并且英语小于 $60$,则输出 $1$;
  2. 如果语文小于 $60$,并且数学和英语都大于等于 $60$,则输出 $1$;
  3. 如果数学小于 $60$,并且语文和英语都大于等于 $60$,则输出 $1$;
  4. 如果上述条件都不满足,输出 $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 进行授权