二维阵列周长和初始化数据

时间:2013-04-11 02:36:17

标签: java multidimensional-array initialization character

我是java的初学者,所以请放轻松我。我正在研究处理二维数组的练习方法问题。问题是一种方法,它告诉您将名为array的二维字符数组作为参数。然后,它希望您将数组的所有元素初始化为“x”,除了初始化为“o”的边界(第一列和最后一列,以及第一行和最后一行)。

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

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

- 只用o填充桌子的外围,其余内部用x正确填充?

这基本上是输出的样子吗?

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

此外,如果我不能接近理解问题,有人可以引导我朝着正确的方向前进吗?

由于

2 个答案:

答案 0 :(得分:0)

最好将其作为两个独立的问题处理:

  1. 将第一行和最后一行初始化为' o'
  2. 初始化剩余的行
  3. 第一个问题很容易解决:迭代第一行和最后一行并将每个元素设置为“' o”。第二个问题分解为

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

    2B。将剩余列初始化为' x'

    假设一行的长度为length,则用

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

答案 1 :(得分:0)

new int数组将初始化为全零。

所以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,最后一个将为length-1