2015-02-12 66 views
-3

我不斷收到一個「找不到符號變量temp」的錯誤。這段代碼中的問題是什麼。有人可以解決這個問題嗎? (我相信新手錯誤)

public int[][] transform(int[][] X) 
{  
    int rows=temp.length-1; 
    int columns=temp[0].length-1; 
    int [][] temp= new int[columns][rows]; 
    for (int r = 0; r < temp.length; r++) 
    { 
     for (int c = 0; c < temp[0].length; c++) 
     { 
      temp[r][c] = X[r][c]; 
     } 
    } 
    return temp; 
} 
} 
+4

不能立足'上'長度rows' temp',同時聲明'temp'基於'rows'。雞隻& egg;只有其中一個可以先到。 – 2015-02-12 04:21:49

+2

我認爲''行和'列'應該基於'x' – MadProgrammer 2015-02-12 04:23:16

回答

0

這種替換方法前3行代碼:

int rows=X.length; 
int columns=X[0].length; 
int [][] temp= new int[columns][rows]; 
+0

但是'temp'依賴'行和'列...... – MadProgrammer 2015-02-12 04:23:39

+0

@MadProgrammer意識到了這個錯誤:p gahhhh我希望他們會提供更多細節。忽略這個答案 – JClassic 2015-02-12 04:24:39

+0

如果'X [1]'有更多元素會發生什麼? – MadProgrammer 2015-02-12 04:30:04

0

你換行和列,並且通過shoudn't減去長度一個

int rows=X.length; 
int columns=X[0].length; 
int [][] temp= new int[rows][columns]; 

然後你的內環像

for (int c = 0; c < temp[r].length; c++) 

最後,你可以使用Arrays.copyOf(int[], int)

+0

'temp'不能在'rows'和'columns'之後聲明... – MadProgrammer 2015-02-12 04:24:38

+0

但是他仍然會得到未定義的符號來聲明'rows',因爲'temp'直到兩行後才被聲明。 – azurefrog 2015-02-12 04:24:46

+0

@MadProgrammer糟糕。謝謝。 – 2015-02-12 04:25:47

1

也許你希望把這樣的:

public int[][] transform(int[][] X) 
{ 

    int rows=X.length; 
    int columns=X[0].length; 
    int [][] temp= new int[columns][rows]; 

    for (int r = 0; r < temp.length; r++) 
    { 
     for (int c = 0; c < temp[0].length; c++) 
     { 
      temp[r][c] = X[r][c]; 
     } 
    } 

    return temp; 

} 
+0

如果'X [1]'有更多元素會怎麼樣? – MadProgrammer 2015-02-12 04:27:41

+0

是的,這可能是一個問題。正確的方法是在屬性中添加行和列。所以它會更像這樣''public int [] [] transform(int [] [] X,int rows,int columns)' – 2015-02-12 04:30:52

+0

您可以根據需要在外部分配每個'temp [r]'循環...點是'X [n]'可以是可變寬度... – MadProgrammer 2015-02-12 04:31:57

0

試試這個:

public int[][] transform(int[][] X) 
{ 

    int rows=X.length-1; 
    int columns=X[0].length-1; 
    int [][] temp= new int[columns][rows]; 

    for (int r = 0; r < temp.length; r++) 
    { 
     for (int c = 0; c < temp[0].length; c++) 
     { 
      temp[r][c] = X[r][c]; 
     } 
    } 

    return temp; 

} 
+0

如果'X [1]'有更多的元素會發生什麼? – MadProgrammer 2015-02-12 04:30:37

+0

如果矩陣交錯,程序將崩潰。我只是試圖修復這個明顯的類型,所以程序會編譯。 – 2015-02-12 04:35:13

相關問題