B班第十八次课——二维数组
2025-05-16 18:41:13
发布于:广东
**C++二维数组 **
1. 什么是二维数组?
想象一张表格,比如班级座位表:
- 有行(第1排、第2排...)和列(第1列、第2列...)
- 每个位置可以存一个数字(如学生学号)
比如:3排4列
的座位表,对应一个3行4列
的二维数组。
列0 | 列1 | 列2 | 列3 | |
---|---|---|---|---|
行0 | 1 | 2 | 3 | 4 |
行1 | 5 | 6 | 7 | 8 |
行2 | 9 | 10 | 11 | 12 |
2. 如何定义二维数组?
语法:告诉计算机“我要什么样的表格”
数据类型 数组名[行数][列数];
例子
int seat[3][4]; // 定义一个3行4列的整型数组(默认值随机)
double score[2][5]; // 2行5列的浮点数组(可存分数)
❗ 注意
- 行和列必须是固定数字,不能是变量(如
int n=3; int arr[n][4];
❌ 错误!) - 下标从0开始:第一行是
行0
,第一列是列0
。
3. 如何给二维数组赋值?
方式1:直接填表(完全初始化)
int arr[2][3] = {
{1, 2, 3}, // 第0行:1 2 3
{4, 5, 6} // 第1行:4 5 6
};
方式2:填部分值,其余自动补0
int arr[2][3] = {
{1}, // 第0行:1 0 0
{4, 5} // 第1行:4 5 0
};
方式3:按顺序一口气写完(自动分行)
int arr[2][3] = {1,2,3,4,5,6};
// 计算机会自动分成两行:
// 第0行:1 2 3
// 第1行:4 5 6
4. 输入和输出二维数组
输入:用两层循环,先读行,再读每行的列
#include <iostream>
using namespace std;
int main() {
int arr[2][3]; // 例子:2行3列的数组
// 输入
for (int i = 0; i < 2; i++) { // i循环行
for (int j = 0; j < 3; j++) { // j循环列
cin >> arr[i][j]; // 输入第i行第j列的值
}
}
return 0;
}
输出:按行打印,每行结束换行
// 输出(接上面的代码)
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
cout << arr[i][j] << " "; // 输出元素加空格
}
cout << endl; // 每行结束后换行
}
// 示例输入:
// 1 2 3 4 5 6
// 输出:
// 1 2 3
// 4 5 6
❗ 常见错误
-
越界访问:
int arr[2][3]; cout << arr[2][3]; // ❌ 行最大是1,列最大是2!
-
用变量定义数组大小:
int n = 3; int arr[n][4]; // ❌ 行数必须是固定值!
回放链接:https://share.weiyun.com/yUI7w3Nl 密码:dha583
这里空空如也
有帮助,赞一个