2011-04-21 53 views
-2

您好我尝试通过java实现一个矩阵...我想写一个方法,它的参数是行和列的矩阵和方法使矩阵。 我写这段代码但它有错误....我的问题是什么?请帮我在java中实现一个矩阵

public class Table { 
int row ; 
int column ; 

Table (int rows , int columns){ 
    row = rows; 
    column = columns; 
} 

void makeTable(int row , int column){ 
    char[][] ; 
    c.length = column ; 
    c[0].length = row ; 

} 
} 
+1

如果这是家庭作业,请将其标记为这样 – MByD 2011-04-21 12:16:21

+0

这一个不编译的:char [] []; 。你错过了那里的'c'吗? – 2011-04-21 12:16:26

+1

请提交具有特定错误的编译代码,或提供有问题的错误;另外,标记为家庭作业。 – 2011-04-21 12:17:41

回答

0

你有没有考虑过提供变量名?甚至宣布矩阵?

想象:

class Table { 
char matrix[][]; 
public Table(int row, int column) { 
    matrix=makeTable(row, column); 
} 

char[][] makeTable(int row, int column) { 
    return new char[row][column]; 
} 
} 
1
class Table { 

    int row; 
    int column; 
    char[][] c; 

    Table(int rows, int columns) { 
     row = rows; 
     column = columns; 
     makeTable(rows, column);//calling initilizer method 
    } 

    private void makeTable(int row, int column) { 
     c = new char[row][column];//initilizing c 

    } 
} 
0

除了存储的矩阵的维数(行数和列数)您所需要的阵列或类似的结构来存储阵列的内容。这将是一个级别(一个成员变量),char[][] ;你在makeTable()是错误的地方存储,并且这不会建立任何因为你没有指定一个名称。

1

你不提供具体的错误,但这里有几个在你的现有代码:

void makeTable(int row , int column){ 
    // the next line is invalid - needs a variable name for the declaration 
    char[][] ; 
    // array length is not set as below, but is set at definition time 
    c.length = column ; 
    c[0].length = row ; 

} 

定义Java中的多维数组的正确方法是:

char[][] c = new char[row][column]; 

你也可以声明一个数组,其中每一行都有不同的列长度(或者您的情况相同,但为什么会使事情复杂化)如下:

char[][] c = new char[row][]; 
for(int i = 0; i < row; i++) { 
    c[row] = new char[column]; 
} 
+0

非常感谢,对我很有帮助 – Rojin 2011-04-21 12:23:49

+0

一个不整齐的数组(即不均匀长度的数组数组)不会违反矩阵的定义吗? – 2011-04-21 12:27:03

+0

如果你了解你所做的事情,并且可以安全地假设所有超出破烂结尾的条目都等于零,那么这并非如此。但是,如果您使用另一个矩阵进行任何操作,您必须正确处理以获得正确的结果。 – duffymo 2011-04-21 12:36:09