题解
查询分数
1 条题解
-
0
解题思路
先把 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