0

JAVAで十字を描くメソッドをコーディングしようとしています。(例については写真を参照してください)。

次に例を示します。

例

いくつかの質問:

  • パラメータを介して配列に次元を与えるにはどうすればよいですか? Eclipse では、配列の次元に変数ではなく数値が必要なようです。メソッドにパラメーターを与えることは可能だと思いました。配列の次元の大きさはどうあるべきかということです。

  • 配列のどの位置が X で、どれが X でないかをループに伝える方法がわかりません。

  • これまでのところ、私のコードのアイデアは次のとおりです...実際には何をすべきかはわかりません:)「X」の代わりに「1」を使用したので、int配列で実行できます。

    public void drawCross(int number){ int i,j; int 配列[][]=新しい int[40][40];

    for(j=1;j<=number;j++){
        for(i=1;i<=number;i++){
            if(array[i]==array[j]){
            array[i][j]=1;
            System.out.print(array[i][j]+" ");
            }
        }
        System.out.print("\n");
    }
    

    }

前もって感謝します。ピート

4

1 に答える 1

2

これは宿題とは思えないので、解決策は

int[][] array = new int[number][number];

for (int i = 0; i < number; i++){
    for (int j = 0; j < number; j++){
        if (i == j || i == number - 1 - j) {
            array[i][j] = 1;
        }
        System.out.print(array[i][j] + " ");
    }
    System.out.print("\n");
}
  1. int[][] aが従来の方法です。int a[][]C プログラマー向けのシンタックス シュガーです。
  2. 数学iでは、通常は行とj列なので、for ループを切り替えます。
  3. 配列は 0 からインデックス付けされます。
  4. 条件は、一方が両方の対角線のいずれかにあるかどうかを示す必要があるため、インデックス i と j のみに関係します。
  5. ||は OR であり、&&AND です (まだご存じない場合)。
  6. ご覧のとおり、マトリックスarrayは必要ありません

そう:

boolean isOnDiagonal = i == j || i == number - 1 - j;
System.out.print(isOnDiagonal ? "X " : ". "); // if-then-else operator.
于 2013-07-02T10:29:10.903 に答える