把一组分数放进格子里
这一课只练一件事:用 装一组同类数据,并安全使用 。完成四个小任务:选出怎么声明 int a[n],走一遍 a[0] 到 a[n - 1],再遍历求最大值。这里不会在浏览器里运行 C++。
任务 1:选出数组怎么写
八次训练成绩都是整数,适合放进一个 。声明常见写成 int a[n]。从 0 开始:第一个格子是 a[0]。点不认识的词可看基础解释。
必会:一组同类数据用数组装,不要开一堆变量。用之前要 或读入。这里不会在浏览器里运行 C++,只练习选择。
8 次同类训练成绩怎么存?一组整数 · 必会
第一个成绩放在哪一格?下标从 0 开始 · 必会
任务 2:从 a[0] 走到最后一个
最小示例:n = 4,四个成绩是 3、8、5、2。是 4,所以最后一个格子是 a[n - 1],也就是 a[3]。按顺序点三格。这里不会在浏览器里运行 C++。
必会:能说明最后一个元素的下标。边界:a[n] 是 ,不要去碰不存在的格子。
- int n = 4;
- int a[n]; // 4 个格子:下标 0、1、2、3
- a[0] = 3; a[1] = 8; a[2] = 5; a[3] = 2;
- // a[4] 越界,不要写
下标走完了,现在亲手把这个写法敲出来。 从 0 开始,所以最后一个格子的下标比长度小 1,写 a[n] 会 。下面是只读脚手架,只留一空给你敲键盘。
- int n = 4;
- int a[n]; // 4 个格子:下标 0、1、2、3
- a[0] = 3; a[1] = 8; a[2] = 5; a[3] = 2;
- int last = ; // 记下最后一个成绩
int last = a[n - 1]; // 最后一个成绩,n 变了也对
任务 3:遍历求最大值
建议掌握:先记下 a[0],再让下标从 1 走到 n - 1,比出最大值。循环写成 for (int i = 0; i < n; i++),条件是 i < n,这样不会碰到 a[n]。
必会 / 建议掌握 / 拓展:必会是读写数组并且不越界。建议掌握是遍历求最大最小值。vector 是拓展,现在不用当硬门槛。
- int mx = a[0]; // 先用第 1 个当起点
- for (int i = 1; i < n; i++)
- if (a[i] > mx) mx = a[i];
- // vector 是拓展:现在先会 int a[n] 和 a[n - 1]
先选出建议掌握的求最大值顺序:
再选出不会越界的遍历写法:
任务 4:随机小测,看看你是否真的懂了
每次从本课题库抽出三道不同的选择题。题目与解析已通过校验,答完后看解析,不要只看分数;拿不准就回到对应任务再看一遍。