问题应该在calculateMainDiagonal方法中,我得到的编译错误是:
int [] []无法转换为int int sumD1 = calculateMainDiagonal(米);
现在主要应该和我的教授代码保持一致。任何帮助将不胜感激。我相信我想要返回一个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:错误:缺少方法体,或声明抽象公共 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;
}
}
答案 0 :(得分:1)
分号不正确,您的参数为int[][]
(不是int
)。
public static int calculateMainDiagonal(int[][] m) // <-- no semicolon.
{
int total = 0;
for (int r = 0; r < m.length; r++) // <-- not r < total.
{
if (r < m[r].length) {
total += m[r][r];
}
}
return total;
}
答案 1 :(得分:0)
您需要删除calculateMainDiagonal(int m)
末尾的分号,并将参数更改为calculateMainDiagonal(int[][] m) { ... }
。
您还需要修改该方法中的for
循环,因为它没有考虑参数。
类似的东西:
public static int calculateMainDiagonal(int[][] matrix) {
int total = 0;
for (int r = 0; r < matrix.length; r++) {
total += matrix[r][r];
}
return total;
}