在 一维静态数组中,我提到过二位静态数组,今天我们来认识一下。
定义
假如说一个变量是一个点,那么一个一维数组就是一条线,二维数组就是一个面
这里还是下标原则
Typ arr[xs][ys]; //定义一个xs*ys大小的二维数组,不赋值
Typ arr[][] = {{}, {}, ..., {}}; //定义一个二维数组,填了多少值就有多少大小
Typ arr[xs][ys] = {}; //定义一个xs*ys大小的二维数组并全部赋值为0
输入&输出
需要用到嵌套循环(循环中套循环)来输入或输出。例如这样(复读数组),OJ中一般会先输入两个值,表示二维数组边界的x和y坐标,图中应该输入的是:
3 3
5 1 4
9 8 7
2 3 6
输出的应该是:
5 1 4
9 8 7
2 3 6
#include <iostream>
using namespace std;
int main() {
int x, y;
cin >> x >> y;
int a[x][y];
for(int i=0; i<x; i++)
for(int j=0; j<y; j++)
cin >> a[i][j];
for(int i=0; i<x; i++) {
for(int j=0; j<y; j++) {
cout << a[i][j] << ' ';
}
cout << endl;
}
return 0;
}
一样的,使用scnaf()
输入数组,不在前面加上&
操作
arr[x][y] = Val; //设置二维数组arr x行y列的值为Val
arr[x][y] //获得二维数组aarr x行y列的值
今天的二维数组就写到这里,再见!