6

这是我的作业:如何创建一个名为cage(char[][] arr) 的公共方法,它返回一个char[][]。该方法应将 Xs 放置在由 2D 数组表示的网格的边界上。此外,它应该沿着数组的列放置“条”,每个条跳过一列。例如,如果 arr 有 8 列,则返回数组如下所示:

 X X X X X X X
 X   X   X   X
 X   X   X   X
 X X X X X X X

我的另一个形状是:使用下面指定的静态方法创建一个 java 类 ArrayArt:一个名为 frame(char[][] arr) 的公共方法,它返回一个 char[][]。该方法应该将 Xs 放在由 2D 数组表示的网格的边界上,然后它应该返回该数组。例如,如果 arr 有 4 列和 4 行,则结果数组应为:

 ----jGRASP exec: java ArrayArt

  X X X X
  X     X
  X     X
  X X X X

 ----jGRASP: operation complete.

接下来是框架打印的源代码:

 public class  ArrayArt{
    public static void main(String[] args){ 
        printArray(frame(4,4));

}

// frame printing
public static char[][] frame(int n, int m ){
    char[][] x=new char[n][m];

    for(int row=0;row<x.length;row++)
        for(int col=0;col<x[row].length;col++)
            if( row == 0 || row == n-1 || row == col+row || row == (row+col)-(m-1) )
                x[row][col]= 'X';
            else
                x[row][col]= ' ';

    return x;       
}

//printArray        
public static void printArray(char[][] arr){
    for(int row=0;row<arr.length;row++){
            for (int col=0;col<arr[row].length;col++)
                System.out.print(" "+arr[row][col]);
            System.out.println();

}
}

}
4

1 回答 1

4

只需在 else 条件后添加此代码:

for(int i=1;i<x[row].length;i++)if(col == i*2)x[row][col]= 'X';

那该做的!祝你好运!

于 2012-11-07T11:17:44.277 回答