需要特定输出的广义更衣室问题

时间:2018-11-11 03:34:03

标签: java arrays

我需要编写一个Java程序,向n个储物柜显示每个学生的储物柜(用户输入n)。我很难编写在每个步骤都显示储物柜的方法。我需要为此使用数组。以下是输出的样子:

示例(对于n = 10):
oooooooooo
oxoxoxoxox
oxxxoxoxxx
....等等

'O'用于打开。 'X'用于关闭。

这是我到目前为止编写的方法(我省略了主要方法以使其简短):

 public static char[][] showstages(int n){
    char[] lockers = new char[n];
    char[][] arrayLockers = new char[n][];

    for (int i = 0; i < n; i++) {
      lockers[i] = 'O';
    }
    for (int i = 0; i<1;i++){
      arrayLockers[i] = lockers;
    }


      for(int i = 2; i<=n; i++){
        for(int z = 1; z<n; z++){
        for (int w = i-1; w <= n; w += i){
          lockers[w] = 'X';

        }
        arrayLockers[z] = lockers;

      }

    }
    return arrayLockers;

  }

上面的代码说明:

  1. 首先创建大小为n的数组“储物柜”
  2. 然后创建一个大小为n个“ arrayLockers”的数组数组来存储每个数组。这就是我要输出的。
  3. 然后初始化数组“ lockers”,以便它们都具有O
  4. 然后仅初始化数组数组的第一个元素“ arrayLockers”,以包括我在步骤3中创建的初始化数组。
  5. 然后,我创建一个for循环以遍历学生2到n。
  6. 我在上一个for循环中创建一个for循环,以将数组“ arrayLockers”的数组的索引1迭代到索引9。这将存储在我的下一个(步骤7)for循环中创建的每个数组。
  7. 最后,我创建了for循环,该循环更改了每个学生的数组索引。那就是for (int w = i-1; w <= n; w += i)。因此,对于学生2,他/她更改了与索引1、3、5、7,...相对应的储物柜2、4、6、8,...
  8. 我愿意return arraylockers

在main方法中运行此命令时得到的输出如下: [[C@ce9117
这显然是不正确的,所以我将不胜感激。
谢谢

0 个答案:

没有答案