0
package homework3;

public class DoubleMatrix
{

   private double[][] doubMatrix;

   public DoubleMatrix (int row, int col)
   {
    if(row > 0 & col > 0)
    {
        makeDoubMatrix(1,1);
    }
    else
    {
        row = 1;
        col = 1;
    }

}
public DoubleMatrix(double[][] tempArray)
{   
    int k = tempArray.length;
    if(tempArray != null)
    {


        for(int i = 0; i < tempArray.length;i++)
        {
            if(k== tempArray[i].length)
            {


            }

        }   
     }
    else
    {
        makeDoubMatrix(1,1);
    }

}


}

これは私が私の割り当てを始めることになっていたものです:あなたが2-dimを宣言するDoubleMatrixと呼ばれるクラスを書いてください。プライベートインスタンス変数としてのdoubleの配列(私はそれをdoubMatrixと呼んでいます)。次のコンストラクターまたはインスタンスメソッドを含めます(ここには静的メソッドはありません)。

  • 最初の次元のint(> 0であることを確認し、そうでない場合は1に設定)と2番目の次元のint(> 0であることを確認し、そうでない場合は1に設定)を使用して、makeDoubMatrixプライベートインスタンスメソッドを呼び出すコンストラクター(下記参照)
  • 2次元の別のコンストラクター。パラメータとしてdoubleの配列(パラメータがnullでない場合、および各行が他の行と同じ長さの場合に割り当てます)、それ以外の場合は、makeDoubMatrixを1、1)で呼び出します。

私が2番目のコンストラクターでチェックインした場合、誰かがそれをチェックできますか?また、問題が「割り当て」とだけ言って、どの値に割り当てるかを言わなかったので、何を割り当てるかわからないので、誰かが何を割り当てるかを教えてもらえる場合は、2番目の割り当てステートメントを省略しました。

4

2 に答える 2

2

同じ長さであるかどうかにかかわらず、最初に各行を確認する必要があります。現在の行が次の行と同じ長さではないことがわかったらすぐにboolean flag設定できる変数を維持できます。false

以下のコードを試して、動作するかどうかをテストできます: -

public DoubleMatrix(double[][] tempArray)
{   
    if(tempArray != null)
    {
        boolean flag = true;
        for(int i = 0; i < tempArray.length - 1;i++)
        {   
            // Check each row with the next row
            if(tempArray[i].length != tempArray[i + 1].length)
            {
                 // as you find the row length not equal, set flag and break
                 flag = false;
                 break;
            }
        }   
        if (flag) {
            doubleMatrix = tempArray;
        } else {
            makeDoubleMatrix(1,1);
        }
     } else {
        makeDoubleMatrix(1, 1);
     }
}
于 2012-10-27T04:53:43.090 に答える
1
public DoubleMatrix(double[][] tempArray)
{   
    //Calling tempArray.length if tempArray is null will get you an error
    if(tempArray != null)
    {


        for(int i = 0; i < tempArray.length;i++)
        {
            for(int j=0;j<tempArray[i].length;j++)
               {
                      doubleMatrx[i][j] = tempArray[i][j];
               }

        }   
     }
    else
    {
        makeDoubMatrix(1,1);
    }

}

また、Javaでは、宣言が次のようなものであるため、2D配列は常に各行に同じ数の列を持ちますint bob[][] = new int[a][b]

于 2012-10-27T04:13:41.387 に答える