BlueJ二维阵列
对于我的类分配,我们需要编写一个名为Matrix的类,其中包含一个名为'matrix'的私有2维int数组,该数组可以最多10行10列。 我们需要使用两个常量MAXROWS = 10和MAXCOLS = 10来构造“矩阵”。 Matrix类还需要以下属性:
private int rows; // number of rows to use in matrix
private int cols; // number of cols to use in matrix
行和列将包含小于等于MAXROWS和MAXCOLS的值。 编写一个默认的Matrix类构造函数,用以下值构造“矩阵”数组:
{{1,2,4,5},{6,7,8,9},{10,11,12,13}, {14,15,16,17}}
构造函数还必须设置行和列变量以匹配上面的矩阵。
编写一个方法'getSumMatrix',它返回数组'矩阵'中所有整数的总和。
编写一个方法'getSumMatrixDiag',返回数组'矩阵'主对角线中所有整数的和。 主对角线是从矩阵的左上角到右下角形成的对角线。
是否有可能让我的代码查看(我在哪里初始化数组并填充值以确保它是正确的)我卡在的部分是getSumMatrix和getSumMatrixDiag。getSumMatrix方法错误在行上for( i = 0; i <a.matrix; i ++)“,并告诉我”找不到符号 - 变量矩阵“,getSumMatrixDiag是一样的。为什么?谢谢。
这是我的代码
/ **索菲亚阿里
Matrix,getSumMatrix,getSumMatrixDiag:
电子邮件只是Matrix.java。
编写一个名为Matrix的类,该类包含一个名为'matrix'的私有2维int数组,该数组可以最多10行10列。 使用两个常量MAXROWS = 10和MAXCOLS = 10构造“矩阵”。
Matrix类还需要以下属性:
私人诠释行; //在矩阵中使用的行数private int cols; //矩阵中使用的列数
行和列将包含小于等于MAXROWS和MAXCOLS的值。
编写一个默认的Matrix类构造函数,用以下值构造“矩阵”数组:
{{1,2,4,5},{6,7,8,9},{10,11,12,13},{14,15,16,17}}
构造函数还必须设置行和列变量以匹配上面的矩阵。
编写一个方法'getSumMatrix',它返回数组'矩阵'中所有整数的总和。
编写一个方法'getSumMatrixDiag',返回数组'矩阵'主对角线中所有整数的和。 主对角线是从矩阵的左上角到右下角形成的对角线。
您不必编写TestMatrix类来测试Matrix类。 只需使用BlueJ对象创建和测试功能即可。
* / public class Matrix {
final int MAXROWS = 10;
final int MAXCOLS = 10;
private int [][] matrix = new int [MAXROWS][MAXCOLS];
private int rows;
private int cols;
public Matrix()
{
int matrix[][] =
{
{1, 2, 4, 5},
{6, 7, 8, 9},
{10, 11, 12, 13},
{14, 15, 16, 17}};
getSumMethod(matrix);
getSumMatrixDiag(matrix);
}
public double getSumMethod(int[][] a)
{
int i, result;
result = 0;
for(i=0; i < 10; i++)
{
result = result + i;
}
return result;
}
public double getSumMatrixDiag(int[][] m)
{
int sum = 0;
for (int i =0; i< m.length; i++)
{
sum = (int)(sum + m[i][i]);
}
return sum;
}
}
编辑:
我使用BlueJ来运行我的程序,当我运行它时,我收到错误“Error incompatible types”。 我不确定编码是否错误(当我编译它时,它编译时没有语法错误),或者我错误地使用了BlueJ。
在你的代码范围内的矩阵变量只是在构造函数内部。 所以它在getSumMethod中不可见。 另外一个是上面指定的数组a.matrix是不正确的。
请尝试以下。 调用方法getSumMethod(矩阵)传递矩阵作为参数,并用a替换a.matrix。 然后看到你至少可以前进一些东西(可能是另一个错误)。 如果你在下面尝试,那么你会错误的相关的数据类型,你可以通过正确的逻辑来解决。 但是这个代码需要很多改进才能按照你需要的方式行事。
final int maxrows = 10;
final int maxcols = 10;
private int [][] matrix = new int [maxrows][maxcols];
private int rows;
private int cols;
public Base64Test() {
int matrix[][] =
{{1, 2, 4, 5},
{6, 7, 8, 9},
{10, 11, 12, 13},
{14, 15, 16, 17}};
getSumMethod(matrix);
}
public double getSumMethod(int[][] a) {
int i, result;
result = 0;
for(i=0; i < a.length; i++) {
result = result + a[i];
}
return result;
}
对不起,我不知道这是你现在的那个,但这会帮助你。
public class Matrix{
private int matrix[][] ;
public Matrix ()
{
int[][] matrix = {{1, 2, 4, 5},
{6, 7, 8, 9},
{10, 11, 12, 13},
{14, 15, 16, 17}};
this.matrix=matrix;
int final_result=0;
for(int i=0;i<matrix.length;i++)
{
final_result+=getSumMethod(matrix[i]);
}
System.out.println("Final result is..."+final_result);
}
public int getSumMethod(int[] a) {
int i, result;
result = 0;
for(i=0; i < a.length; i++) {
result = result + a[i];
}
return result;
}
}
...
链接地址: http://www.djcxy.com/p/85937.html