【发布时间】:2017-04-16 22:20:15
【问题描述】:
问题应该在calculateMainDiagonal方法,我得到的编译错误是:
int[][] 不能转换为 int int sumD1 = 计算主对角线(m);
现在 main 应该与我的教授代码保持一致。任何帮助将不胜感激。我相信我应该返回一个 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;
}
}
【问题讨论】:
-
声明
calculateMainDiagonal的那一行多了一个分号。 -
另外,不要调用参数
sum。您正在计算矩阵中的值。矩阵是参数,而不是和。 -
天啊,我太笨了……我花了好几个小时才研究它,哈哈。我不敢相信我没有发现这一点。
标签: java for-loop matrix compiler-errors