top1编程
← 返回题目
题解

最高分数

1 条题解

  • 0
    @ 2026-8-4 14:03:51

    解题思路

    题目给出 5 名同学的成绩,要找出最高的分数。这和"求 n 个数里的最大值"是同一个套路——打擂台。

    两种写法都可以:

    写法一:先读入第一个成绩当擂主,再循环读剩下 4 个成绩,谁大谁当擂主。 写法二:把最大值变量初始化为 0(因为成绩范围是 0≤a≤100,0 一定不会比真实成绩大),然后循环 5 次,每次读一个成绩就判断要不要更新最大值。

    本题采用写法一,思路更直接:变量 mx 先等于第一个成绩,之后每读一个成绩 a,只要 a>mx 就把 mx 更新成 a。5 个数都读完,mx 就是最高分。

    参考代码

    #include <iostream>
    using namespace std;
    
    int main() {
        int a;              // a:当前读入的一个成绩
        cin >> a;           // 读入第一个成绩
        int mx = a;         // mx:最高分,先让第一个成绩当擂主
        for (int i = 2; i <= 5; i++) {   // 再循环读剩下 4 个成绩
            cin >> a;       // 读入一个成绩
            if (a > mx) {   // 如果它比当前最高分还高
                mx = a;     // 更新最高分
            }
        }
        cout << mx << endl; // 输出最高分
        return 0;
    }
    

    复杂度分析

    题目固定只有 5 名同学,循环次数固定为 4 次,不随输入变化,所以时间复杂度是 O(1)。空间上只用了 a、mx、i 三个变量,空间复杂度也是 O(1)。

    • 1