的问题应该在calculateMainDiagonal方法,编译错误我得到的是:收到编译错误:INT [] []不能被转换成int的Java
int[][] cannot be converted to int int sumD1 = calculateMainDiagonal(m);
现在主要应该保持不变,因为它是我的教授码。任何帮助将不胜感激。我相信我想要返回一个int,但我不确定。
尝试我想:
public static int [][] calculateMainDiagonal(int sum);
public static int [][] calculateMainDiagonal(int [][] sum);
public static int calculateMainDiagonal(int sum)
当我输入这样的:
public static int calculateMainDiagonal(int [][] sum);
它给了我这个编译错误,而不是:
java:50: error: missing method body, or declare abstract public static int calculateMainDiagonal(int [][] sum);
public class TesterProject
{
public static void main(String [] args)
{
int n = getMatrixSize();
int[][] m = makeAndFillMatrix(n);
printMatrix(m);
int sumD1 = calculateMainDiagonal(m);
System.out.println("The sum of the main diagonal is " + sumD1);
}
public static int getMatrixSize()
{
Scanner S = new Scanner(System.in);
System.out.println("give me a int to create the matrix");
int n = S.nextInt();
return n;
}
public static int [][] makeAndFillMatrix(int n)
{
Random generator = new Random(5);
int [][] r = new int[n][n];
int rand = generator.nextInt(10);
for(int i = 0; i < r.length; i++)
{
for(int j = 0; j < r[i].length; j++)
{
r[i][j]= rand;
}
}
return r;
}
public static void printMatrix(int [][] matrix)
{
for(int r = 0; r < matrix.length; r++)
{
for(int c = 0; c < matrix[r].length; c++)
{
System.out.print(matrix[r][c] + " ");
}
System.out.println();
}
}
//only problem is this method
public static int calculateMainDiagonal(int sum);
{
int total = 0;
for (int r = 0; r < total; r++)
{
total += r;
}
return total;
}
}
声明该行'calculateMainDiagonal'中有一个多余的分号。 – ajb
另外,不要调用参数'sum'。你正在计算一个矩阵的值。矩阵是参数,而不是总和。 – ajb
OMG,我好蠢......我在这里工作了好几个小时。我不敢相信我没有发现这一点。 – IDK