top1编程
← 返回题目
题解

查询分数

1 条题解

  • 0
    @ 2026-8-5 0:54:47

    解题思路

    先把 5 名学生的分数存进数组 a,然后根据学号取出对应分数。

    这里要特别小心“下标”和“学号”的差别:

    • 学号是从 1 开始的(1 号、2 号、3 号……);
    • 数组下标是从 0 开始的(a[0]、a[1]、a[2]……)。

    所以第 1 号学生存在 a[0],第 2 号学生存在 a[1]……也就是说:学号 id 对应的数组下标是 id-1。

    读入要查询的学号 id 后,直接输出 a[id-1] 就可以了。

    参考代码

    // P4448 查询分数:把分数存进数组,按学号取出对应分数
    #include <iostream>
    using namespace std;
    
    int main() {
        int a[5];               // 存 5 名学生的分数
        for (int i = 0; i < 5; i++) cin >> a[i];  // 读入 5 个分数
        int id;
        cin >> id;              // 要查询的学号(从 1 开始)
        cout << a[id - 1] << endl;  // 学号 1 对应数组下标 0,所以减 1
        return 0;
    }
    

    复杂度分析

    固定有 5 名学生。

    • 时间:读入 5 个数后,直接按下标取一次数,时间复杂度是 O(1)。
    • 空间:一个长度为 5 的数组,空间复杂度是 O(1)。
    • 1