簡體   English   中英

BlueJ 2d維數組

[英]BlueJ 2d Dimensional Array

對於我的類分配,我們需要編寫一個名為Matrix的類,該類包含一個稱為'matrix'的私有二維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}}

構造函數還必須設置row和cols變量以匹配上述矩陣。

編寫一個方法“ getSumMatrix”,該方法返回數組“ matrix”中所有整數的和。

編寫一個方法“ getSumMatrixDiag”,該方法返回數組“ matrix”的主對角線上所有整數的和。 主對角線是從矩陣的左上角到右下角形成的對角線。

是否可以檢查我的代碼(在哪里初始化數組並用值填充它以確保它正確。我被卡住的部分是getSumMatrix和getSumMatrixDiag。getSumMatrix方法錯誤在“ for( i = 0; i <a.matrix; i ++)”,並告訴我“找不到符號-可變矩陣”。getSumMatrixDiag會是一樣的方式。為什么?謝謝你。

這是我的代碼

/ **索菲亞·阿里(Sophia Ali)

  1. 矩陣,getSumMatrix,getSumMatrixDiag:

    僅通過Matrix.java發送電子郵件。

    編寫一個名為Matrix的類,其中包含一個稱為“矩陣”的私有二維int數組,該數組最多可以包含10行乘以10列。 使用兩個常量MAXROWS = 10和MAXCOLS = 10構造“矩陣”。

    Matrix類還將需要以下屬性:

    私有int行; //矩陣專用int col中要使用的行數; //在矩陣中使用的列數

    行和列將包含小於等於MAXROWS和MAXCOLS的值。

    編寫一個默認的Matrix類構造函數,該構造函數使用以下值構造“矩陣”數組:

    {{1,2,4,5},{6,7,8,9},{10,11,12,13},{14,15,16,17}}

    構造函數還必須設置row和cols變量以匹配上述矩陣。

    編寫一個方法“ getSumMatrix”,該方法返回數組“ matrix”中所有整數的和。

    編寫一個方法“ getSumMatrixDiag”,該方法返回數組“ matrix”的主對角線上所有整數的和。 主對角線是從矩陣的左上角到右下角形成的對角線。

    您不必編寫TestMatrix類來測試Matrix類。 只需使用BlueJ對象創建和測試功能。

    * /公共類矩陣{

     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運行我的程序,當我運行它時,出現錯誤“錯誤不兼容類型”。 我不確定我的編碼是否錯誤(當我編譯它時,它編譯時沒有語法錯誤)還是我沒有正確使用BlueJ。

在您的代碼范圍內,矩陣變量就在構造函數內部。 因此它在getSumMethod中不可見。 另外a是上面指定的數組a.matrix是不正確的。

請嘗試以下。 調用方法getSumMethod(matrix),將矩陣作為參數傳遞,並將a.matrix替換為a。 然后,您至少可以前進一些(可能是另一個錯誤)。 如果嘗試以下操作,則將出現與數據類型有關的錯誤,可以通過放置正確的邏輯來解決這些數據類型。 但是,此代碼需要進行大量改進才能按照您的要求進行操作。

 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;
     }
}

...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM