0
import java.lang.Math;

public class Homework2 {
public static void main(String[] args){

    int d1 = (int) (Math.random()*(10-3+1)+3);
    int d2 = (int) (Math.random()*(10-3+1)+3);

    double[][] doubMatrix1 = new double[d1][d2];
    double[][] doubMatrix2 = new double[d1][d2];
    double[][] doubMatrix3 = new double[d1][d2];

    doubMatrix1 = getdoubMatrix(d1,d2);
    doubMatrix2 = getdoubMatrix(d1,d2);
    doubMatrix3 = addMatrices(doubMatrix1, doubMatrix2);
}
public static double[][] getdoubMatrix(int d1, int d2){

    double[][] tempArray = new double[d1][d2];

    for(int i =0; i <tempArray.length;i++ )
        for(int j =0;j < tempArray[i].length;j++)
            tempArray[i][j] = Math.random()*(10.0);

    return  tempArray;
}
public static double[][] addMatrices(double doubMatrix1[][], double doubMatrix2[][]){

    for(int i = 0; i< doubMatrix1.length;i++)
        for(int j = 0; j< doubMatrix1[i].length;j++ )
        {
            if(doubMatrix1[i][j] == doubMatrix2[i][j])
            {
                double[][] tempArray = new double[i][j];

            }
            else
            {
                return tempArray[0][0]; 
            }
        }

    return tempArray;
}
}

addMatrices メソッドの両方の return ステートメントでエラーが発生しています。また、正しく実行しているとは思いません

これは、私が addMatrices メソッドに対して行うことになっていたことです

addMatrices メソッドでは、

· 各 2-dim の 1 番目の次元と 2 番目の次元を確認します。配列 配列は同じです -- それらが同じでない場合は、0 X 0 2-dim を返します。配列、それ以外の場合は次のようにします。

· ローカル 2-dim にメモリを割り当てます。2 次元の 1 つと同じ次元の配列。配列パラメータ

· パラメータ 2-dim に対応する各要素を追加します。配列を作成し、結果をローカル 2-dim の対応する要素に格納します。配列 (ネストされた for ループを使用)

· ローカル 2-dim を返します。配列

4

1 に答える 1

3
public static double[][] addMatrices(double doubMatrix1[][], 
                                     double doubMatrix2[][]){

for(int i = 0; i< doubMatrix1.length;i++)
    for(int j = 0; j< doubMatrix1[i].length;j++ )
    {
        if(doubMatrix1[i][j] == doubMatrix2[i][j])
        {
            double[][] tempArray = new double[i][j];

        }
        else
        {
            return tempArray[0][0]; 
        }
    }

return tempArray;
}
  • 最初の問題は、else 部分で double 値を返すことです。ArrayElement であり、戻り値の型は として定義されていarray of arrayます。

  • tempArray第二に、あなたはあなたの内側をあなたと宣言し、ifそれを外側で使用していますif。if ループと for ループの外側で、メソッド内で宣言します。

一次修正が必要: -

  • else の return ステートメントを次のように変更します。 -

    tempArray = new double[0][0];
    
  • tempArrayそして、for ループの外側で宣言します。

さて、上記の問題以外にもたくさんあります。あなたaddMatrixは論理的に行列を追加していません。そのコードをチェックする必要があると思います..

于 2012-10-14T18:55:54.390 に答える