1 votes

Comment convertir un tableau à une dimension en un tableau à deux dimensions

J'ai déjà le code pour convertir un tableau bidimensionnel en un tableau unidimensionnel, mais je ne sais pas comment faire l'inverse. Voici mon code :

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("Entrez le nombre de lignes de votre tableau.");
    n = entrada.nextInt();

    System.out.println("Entrez le nombre de colonnes de votre tableau.");
    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("Entrez 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[i + 1]) {
          int Temp = B[i];
          B[i] = B[i + 1];
          B[i + 1] = Temp;
          Swap = true;            
        }
    } while (Swap);

    for (int i=0;i

2voto

sfossen Points 3671

Tu cherches quelque chose comme :

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

qui est la même chose que :

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

mais en essayant d'expliquer le concept plus en détail.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X