Javaではなく、2次元配列の使い方を学んだばかりです。私がしようとしているのは、行列と真の魔法の正方形がどこにあるのかを判断するために、行と列の異なる総和と異なる対角線を比較することです。しかし、今、私が行うことができるのは私の配列をプリントアウトすることだけです。私はcolSUmとrowSumのパラメータに入れようとしている変数を見つけることができないというエラーが発生し続ける。このため、私の論理が実際に正しいのかどうかはわかりません。2次元配列のマジックスクエアの異なる方向の合計を比較する
public class MagicSquare
{
private int[][] grid;
public MagicSquare(int[][] g)
{
grid=g;
}
/**
* find the sum of a given row
*/
public int rowSum(int row)
{
int sum;
for (row=0; row < grid.length; row++)
{
sum = 0;
for (int col=0; col < grid[row].length; col++)
{
sum = sum + grid[row][col];
}
}
return sum;
}
/**
* find the sum of a given column
*/
public int colSum(int col)
{
int sum;
for (int i = 0; i < grid.length; i++)
{
sum = 0;
for (int j = 0; j < grid[i].length; j++)
{
sum += grid[j][i];
}
}
return sum;
}
/**
* returns the sum in the "up" diagonal (from the lower left to the upper right)
*/
public int upDiagSum()
{
int totalup = 0;
for (int row = 0; row < grid.length; row++)
{
totalup += grid[row][row];
}
return totalup;
}
/**
* determines if the sum all rows, columns, and main diagonals are equal
*/
public boolean isMagicSquare()
{
boolean isMagicSquare = false;
while(!isMagicSquare)
{
if (downDiagSum()!=upDiagSum() && rowSum(row) != colSum(i))
return false;
else
return true;
}
return isMagicSquare;
}
私は繰り返したいと思ったので、ここにはdownDiagメソッドは含まれていませんでした。これらは私のコードで最も重要な4つのメソッドです。
のrowSumとcolSumメソッドでは、内部ループのみが必要です –
エラーが発生しました。「メソッドrowSumは、指定された型には適用できません;必須int、引数が見つからない、理由:私のisMagicSquare()メソッドで "length"を返します。私はint行とint colをパラメータに追加しようとしましたが、それはうまくいきませんでした。 –
あなた自身で文法エラーを修正しました –