数组(一维与二维)
要存"一排同类型数据",不用开 100 个变量 —— 一个名字管一排盒子。
一、数组就是一排连续的盒子
int a[10]; —— int 是元素类型,a 是名字,10 是大小。
用下标访问,从 0 开始。点下面任意一个盒子看它是第几个:
点一个盒子试试。
二、互动演示:初始化规则(没给到的补 0)
花括号里给了的用给的值,没给到的一律补 0。点按钮看不同写法的真实结果。
点上面任意一种初始化写法。
三、下标越界很危险
int a[5]; 合法下标只有 a[0]~a[4]。写 a[5] 编译器不报错,但运行时可能破坏数据甚至崩溃。点按钮看哪些越界:
基本功:数组一定开够大小。竞赛常用技巧——开大一点、从
a[1] 开始用,让下标和题意对齐。四、参考代码:读入并求和 + 二维数组
#include <iostream>
using namespace std;
const int maxn = 1005; // 用常量当数组大小
int a[maxn];
int main() {
int n;
cin >> n;
for (int i = 1; i <= n; i++) cin >> a[i]; // 从 a[1] 开始读 n 个
int sum = 0;
for (int i = 1; i <= n; i++) sum += a[i]; // 求和
cout << sum << endl;
// 二维数组:嵌套循环遍历(外层行、内层列)
int g[3][4];
for (int i = 0; i < 3; i++)
for (int j = 0; j < 4; j++)
g[i][j] = 0;
return 0;
}
一维配单层 for,二维配嵌套 for —— 呼应上一课的循环嵌套。