2013-04-11 123 views
1

我是java的初学者,所以请在我身上轻松一下。我正在研究一个处理二维数组的实践方法问题。问题是一个方法,告诉你将一个名为array的字符的二维数组作为参数。然后它要求你将数组的所有元素初始化为'x',除了初始化为'o'的外围(第一列和最后一列,以及第一行和最后一行)。二维数组周长和初始化数据

我的问题是如何初始化每个元素来表示二维数组中的x和y,以及如何初始化外围的每个行和列元素? 例如二维阵列由4 columns-

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

创建3行-would填充表与唯一的0和其余部分内将填充有X的正确外周长?

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

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

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

感谢

回答

0

这是最好的,因为两个独立的问题来处理:

  1. 初始化第一个和最后一个行 'O'
  2. 初始化剩余行

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

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

2b。初始化其余的列的“x”

假设行具有的length的长度,这是解决与

array[0] = 'o'; 
array[length - 1] - 'o'; 
for(int i = 1; i < length - 1; i++) 
    array[i] = 'x' 
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,最后将是长度为1

+0

好的,我对如何解决问题有了更好的理解。一个问题,但。如何找到if语句的第一个和最后一个元素?会像行==数组[0] .length是正确的方式来声明我正在寻找的第一个元素?这是因为我创建了新的数组首先与该阵列[0] .length在 – user2045470 2013-04-11 03:12:37

+0

我更新了我的答案 – 2013-04-11 03:25:32