1

我是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},

另外,如果我无法理解问题,有人可以引导我朝着正确的方向前进吗?

谢谢

4

2 回答 2

0

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

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

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

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

2b。将剩余的列初始化为“x”

假设一行的长度为length,这可以通过

array[0] = 'o';
array[length - 1] - 'o';
for(int i = 1; i < length - 1; i++)
    array[i] = 'x'
于 2013-04-11T02:45:43.833 回答
0

一个newint 数组将被初始化为全零。

所以 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

于 2013-04-11T02:46:23.807 回答