2009-03-20 28 views
1

2次元のものを次元に変換するコードはすでにありますが、その逆の方法はわかりません。ここに私のコードは次のとおりです。1次元配列を2次元配列に変換する方法

package laboratorio9; 

import java.util.Scanner; 
public class Main { 
    public static void main(String[] args) { 
    Scanner entrada = new Scanner(System.in); 
    int A[][]; 
    int B[]; 
    int n; 
    int m; 
    int nb = 0; 

    System.out.println("Enter the number of lines in your array."); 
    n = entrada.nextInt(); 

    System.out.println("Enter the number of columns in your array."); 
    m = entrada.nextInt(); 

    A = new int[m][n]; 
    B = new int[m*n]; 

    for (int i = 0; i < m; i++) { 
     for (int j = 0; j < n; j++) { 
     System.out.println("Enter A["+i+"]["+j+"]"); 
     A[i][j] = entrada.nextInt(); 
     } 
    } 
    System.out.println(); 

    for (int i = 0; i < m;i++) { 
     for (int j = 0; j < n; j++) { 
     B[nb] = A[i][j]; 
     nb++; 
     } 
    } 

    for (int i = 0; i < m*n; i++) { 
     System.out.println(B[i] + " "); 
    } 
    System.out.println(); 

    Boolean Swap = false; 

    do { 
     Swap = false; 
     for (int i=0;i<B.length-1;i++) 
     if (B[i] > B[i + 1]) { 
      int Temp = B[i]; 
      B[i] = B[i + 1]; 
      B[i + 1] = Temp; 
      Swap = true;    
     } 
    } while (Swap); 

    for (int i=0;i<B.length;i++) 
     System.out.println(B[i]); 
    } 
} 
+0

コードを正しくフォーマットするときれいになります – Diones

+0

フォーマットを修正しました – Eddie

+0

ああ、私はあなたのためにしていません。これは100%doableの問題です。それを解決すれば、より良いプログラマができます。 – Diones

答えて

2

あなたが何かを探している:

int k = 0; 
for (int i = 0; i < m;i++) 
{ 
    for (int j = 0; j < n;j++) 
    { 
     C[i][j] = B[k++]; 
    } 
} 

が、より多くの概念を説明しようとすると:と同じである

int j = 0; 
int k = 0; 
for (int i = 0; i < nb;i++) 
{ 
    C[j][k] = B[i]; 
    k++; 
    if(k >= n) 
    { 
     j++; 
     k = 0; 
     if(j >= m) 
      throw Error(); 
    } 
} 

関連する問題