2

これは少し不自然な質問だと思いますが、ここに行きます。私の CS 学位の課題の 1 つとして、次の問題が与えられましたが、どこから始めればよいかわかりません。最初に他のすべての問題を解決したので、私の頭は少し揚げ物になっていると思います。

2 つの 2 次元配列を次のように初期化するプログラムを作成します。

int arrayA[][] = {{1,4,3,5},{3,8,1,2},{4,3,0,2},{0,1,2,7}};
int arrayB[][] = {{6,1,0,8},{3,2,1,9},{5,4,2,9},{6,5,2,0}};

**プログラムは配列を追加し、結果を 3 番目の 2 次元配列に入れる必要があります。

たとえば、A = {{1,2},{3,4}} かつ B = {{5,6},{7,8}} の場合、C = A + B = {{1 + 5, 2 + 6 }, {3 + 7, 4 + 8}} = {{6, 8},{10, 12}}

多次元配列についてはあまり詳しく触れていません。問題への答えを私に教えないでください。それは私が学ぶのに役立ちませんが、誰かがこの問題でとるべき一般的な方向性についていくつかの指針を与えることができれば、それは大きな助けになるでしょう. これまでのところ、4 つの配列の最初の配列を 4 つの 1 次元配列に分割してから、for ループで計算を実行することをいじっていましたが、12 の 1 次元配列が残るため、もっと簡単な方法があるはずだと考えました。配列 (多次元配列ごとに 4 つと、別の 4 つの 1 次元配列で arrayC を構成します。計算の結果です。16 は、単純な追加には少し過剰ですよね?

あなたが私の愚かさを嘲笑する前に、私は過去数日間、他のさまざまな課題でほとんど眠っていないことを心に留めておいてください!タ :P

######################### 編集

助けてくれてありがとう、私はそれを理解して、これらの問題にアプローチする方法を理解しました。同様の問題を抱えている他の人のために、次のコードを使用しました。

public class twoDimensionalArray {

    public static void main(String args[]){

        int arrayA[][] = {{1,4,3,5},{3,8,1,2},{4,3,0,2},{0,1,2,7}};
        int arrayB[][] = {{6,1,0,8},{3,2,1,9},{5,4,2,9},{6,5,2,0}};
        int arrayC[][] = new int[4][4];

        for(int i = 0; i < arrayA.length; i++) {
            for(int j = 0; j< arrayA[0].length; j++) {
                arrayC[i][j] = arrayA[i][j] + arrayB[i][j];

            } // end j for loop
        } // end i for loop 

        for (int i = 0; i < arrayC.length; i++) {
            for (int x = 0; x < arrayC[i].length; x++) {
                 System.out.print(arrayC[i][x] + "  | ");
            }
            System.out.println();
        }
    } // end main
} // end class
4

3 に答える 3

1

次の 2 つのことを理解する必要があります。

  1. 出力配列を割り当てる方法。次元は各入力配列の次元と同じになるため、これは非常に簡単なはずです。
  2. 配列を反復処理する方法。これを行う最も簡単な方法は、ネストされた 2 つforのループ (次元ごとに 1 つ) を使用することです。

幸運を!

于 2012-11-27T19:41:33.723 に答える
1

結果を保持するために、新しい 2 次元配列 "arrayC" を宣言して初期化します。ネストされたforループを使用して両方の配列をループし、結果を追加して、結果を新しい 2D 配列に格納します。

于 2012-11-27T19:41:35.793 に答える
0

配列が同じ長さであると仮定します。

for (int x = 0; x < arrayA.length; x++)
  for (int y = 0; y < arrayA[0].length; y++)
    result[x][y] = arrayA[x][y] + arrayB[x][y];
于 2012-11-27T19:46:55.683 に答える