C++二维数组?
输入:一个正整数n。输出:一个由1和2组成的n行n列的矩阵。【样例输入】5【样例输出】1212121212121212121212121...
输入:一个正整数n。
输出:一个由1和2组成的n行n列的矩阵。 【样例输入】
5 【样例输出】
1 2 12 1
2 1 21 2
1 2 12 1
2 1 21 2
1 2 12 1 展开
输出:一个由1和2组成的n行n列的矩阵。 【样例输入】
5 【样例输出】
1 2 12 1
2 1 21 2
1 2 12 1
2 1 21 2
1 2 12 1 展开
1个回答
展开全部
在讲解二维数组之前,先来了解一下我们常见的数组(一维数组),看看下面这张图。
假设这是一个有4个格子的盒子,每一个格子放置一个圆球,如果我说把第二个格子里面的球拿出来,你是不是很容易就把标号为2的球拿出来。
把这个例子对应到数组中,整个盒子就是一个数组,每个格子的序号就是数组下标,取出来的小球就是数组存放的内容。
下面我们依然用这个例子,把二维数组说一下:
还是那个盒子,这次每一个盒子里面我都放有1号-4号的小球。这时如果我说从第二个格子里面拿一个球出来,你是不是不知道要拿哪一个球,可能就是随便从4个球中拿一个了。那如果我说你把第二个格子当中的4号球帮我拿出来,你是不是就很容易拿出来了。
那么二维数组其实就是在一维数组的元素中再放入数组。同理多维数组就是继续在数组里面放入数组。
(一)我们来说一下写法。
一维数组是这样写的:
Dim arr=array(1,2,3,4)
按照刚刚说的二维数组是在“数组里面放数组”的原理,二维数组我们可以这样写:
Dim arr=array(array(1,2,3,4),array(1,2,3,4,array(1,2,3,4,array(1,2,3,4)
(二)我们要知道怎么读取数组:
一维数组是数组名(数组下标),数组下标是从0开始的,也就是第一个内容的数组下标是0,第二个内容是1,以此类推。。
arr(0)
二维数组是数组名(第一层数组下标,第二层数组下标)
arr(0,0)
这里有两个0,第一个0代表二维数组里面的第一个内容array(1,2,3,4),第二个0代表在上一个0所对应的数组里面的第一个内容,也就是1。
为了区分数组内容,我们把每一个内容加上一个编号。
Dim arr=array(array(11,12,13,14),array(21,22,23,24),array(31,32,33,34),array(41,42,43,44))
TracePrint arr(0,0)
这个代码我是获取的第一个“格子”的第一个球。
当然二维数组也不是说必须要在一维数组的基础上每一个内容都要变成数组,也可以只变化一个或者多个。
比如像图片这样,也是可以的,那读取的时候,第一个格子按照二维数组读取,后面三个格子,按照一维数组去读取。
上面是单一的读取,如果是把数组中所有数据都读取出来呢。
还是先拿一维数组举例:
第一种方法:
Dim arr=array(1,2,3,4)
For i = 0 To UBOUND(arr)
TracePrint arr(i)
Next
假设这是一个有4个格子的盒子,每一个格子放置一个圆球,如果我说把第二个格子里面的球拿出来,你是不是很容易就把标号为2的球拿出来。
把这个例子对应到数组中,整个盒子就是一个数组,每个格子的序号就是数组下标,取出来的小球就是数组存放的内容。
下面我们依然用这个例子,把二维数组说一下:
还是那个盒子,这次每一个盒子里面我都放有1号-4号的小球。这时如果我说从第二个格子里面拿一个球出来,你是不是不知道要拿哪一个球,可能就是随便从4个球中拿一个了。那如果我说你把第二个格子当中的4号球帮我拿出来,你是不是就很容易拿出来了。
那么二维数组其实就是在一维数组的元素中再放入数组。同理多维数组就是继续在数组里面放入数组。
(一)我们来说一下写法。
一维数组是这样写的:
Dim arr=array(1,2,3,4)
按照刚刚说的二维数组是在“数组里面放数组”的原理,二维数组我们可以这样写:
Dim arr=array(array(1,2,3,4),array(1,2,3,4,array(1,2,3,4,array(1,2,3,4)
(二)我们要知道怎么读取数组:
一维数组是数组名(数组下标),数组下标是从0开始的,也就是第一个内容的数组下标是0,第二个内容是1,以此类推。。
arr(0)
二维数组是数组名(第一层数组下标,第二层数组下标)
arr(0,0)
这里有两个0,第一个0代表二维数组里面的第一个内容array(1,2,3,4),第二个0代表在上一个0所对应的数组里面的第一个内容,也就是1。
为了区分数组内容,我们把每一个内容加上一个编号。
Dim arr=array(array(11,12,13,14),array(21,22,23,24),array(31,32,33,34),array(41,42,43,44))
TracePrint arr(0,0)
这个代码我是获取的第一个“格子”的第一个球。
当然二维数组也不是说必须要在一维数组的基础上每一个内容都要变成数组,也可以只变化一个或者多个。
比如像图片这样,也是可以的,那读取的时候,第一个格子按照二维数组读取,后面三个格子,按照一维数组去读取。
上面是单一的读取,如果是把数组中所有数据都读取出来呢。
还是先拿一维数组举例:
第一种方法:
Dim arr=array(1,2,3,4)
For i = 0 To UBOUND(arr)
TracePrint arr(i)
Next
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询