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

    上一篇: BlueJ 2d Dimensional Array

    下一篇: How do I declare a 2d array in C++ using new?