二维数组周长和初始化数据



我是java的初学者,所以请对我宽容一点。我正在研究一个处理二维数组的实践方法问题。问题是一个方法,它告诉您将名为array的二维字符数组作为参数。然后,它希望您将数组的所有元素初始化为' x ',除了初始化为' o '的周长(第一列和最后一列,以及第一行和最后一行)。

我的问题是如何初始化每个元素来表示二维数组中的x和y,以及如何初始化周长的每个行和列元素?例如,创建3行4列的二维数组-

char[][] table = new char[3][4]

-将填满表的外部周长只有0和其余内部将填满x,对吗?

本质上是这样的输出看起来像吗?

  { o, o, o, o},
  { o, x, x, o},
  { o, o, o, o},

另外,如果我没有接近理解问题的地方,有人可以引导我在正确的方向吗?

谢谢

这最好作为两个独立的问题来处理:

  1. 初始化第一行和最后一行为'o'
  2. 初始化剩余行

第一个问题很容易解决:遍历第一行和最后一行,并将每个元素设置为"0"。第二个问题被分解为

2 a。初始化第一列和最后一列为'o'

2 b。将其余列初始化为'x'

假设一行的长度为length,用

求解
array[0] = 'o';
array[length - 1] - 'o';
for(int i = 1; i < length - 1; i++)
    array[i] = 'x'

new int数组将被初始化为全0。

int[][] array = new int[3][4];

看起来像

{0,0,0,0}
{0,0,0,0}
{0,0,0,0}

你得自己设定周长

你需要的是嵌套一些循环,并确定你在数组中的位置,并相应地设置:(伪代码)

for i loop through array.length
    for j loop through array[i].length
        if i == first element or i == last element or j == first element or j == last element
             then array[i][j] = perimeter value
        else
             array[i][j] = center value

一个长度为n的数组有n个元素,从0到n-1,所以如果你有一个这样的数组

{1,2,3,4}

array[0]将为1,这是因为Java数组是从0开始的。

第一个总是0,最后一个是length-1

相关内容

  • 没有找到相关文章

最新更新