6

これは私の宿題です: char[][] を返す、cage(char[][] arr) というパブリック メソッドを作成する方法。このメソッドは、2D 配列で表されるグリッドの境界に沿って X を配置する必要があります。さらに、配列の列に沿って「棒」を配置し、棒ごとに 1 列をスキップする必要があります。たとえば、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を作成します:char [] []を返すframe(char [] [] arr)と呼ばれるパブリックメソッド。メソッドは、2D 配列で表されるグリッドの境界に沿って X を配置し、その配列を返す必要があります。たとえば、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 に答える