2017-09-22 7 views
-1

J'essaie d'utiliser une ligne d'impression de l'entrée de l'utilisateur pour remplir deux tableaux 3x3 distincts, mais il me semble que je ne peux faire que deux lignes d'impression, 1 pour chaque ensemble de tableaux. Comment est-ce que je couperais le besoin de deux lignes de balayage séparées et juste l'utilisateur met dans chacun des 18 entiers et placé dans chaque cellule respectivement? Ce sont les deux invites séparées pour l'utilisateur:Comment utiliser une ligne d'impression pour remplir 2 tableaux 2D

int m1 [][] = new int[3][3]; 
int m2 [][] = new int[3][3];  
System.out.print("Enter List1: "); 
for (int row = 0; row < m1.length; row++) 
{ 
    for(int column = 0; column < m1[row].length; column++) 
    { 
     m1[row][column] = input.nextInt(); 
    } 
} 

System.out.print("Enter List2: "); 
for (int row = 0; row < m2.length; row++) 
{ 
    for(int column = 0; column < m2[row].length; column++) 
    { 
     m2[row][column] = input.nextInt(); 
    } 
} 

Nous avons ici deux invites pour l'entrée d'utilisateur à chaque remplissage du tableau séparément. Est-ce que ceci pourrait être réduit à une invite et remplir les 9 premiers nombres au premier tableau et les derniers 9 au deuxième tableau?

+0

Oui, il pourrait être coupé de cette façon. Comment as-tu essayé de faire ça? Pourquoi avez-vous besoin de faire ça? – DevelopingDeveloper

+0

@DevelopingDeveloper Oui, j'ai essayé, mon problème est que lorsque j'essaie de les combiner, je reçois une exception hors limites parce qu'il essaie de mettre l'entrée complète dans un tableau. Je l'ai fait de cette façon parce que je tente de faire le tableau effectuer plusieurs tâches à la fois après que les chiffres sont tapés aussi vite que possible. –

+0

Enlever 'System.out.print (" Enter List2: ");' et il ne restera plus qu'une ligne d'impression dans le code. – Andreas

Répondre

0

Vous avez juste besoin d'enlever System.out.print("Enter List2: ");, alors les utilisateurs peuvent entrer 18 numéros sans interruption.

int m1 [][] = new int[3][3]; 
int m2 [][] = new int[3][3]; 
System.out.print("Enter List1 and List2 (18 numbers): "); 
for (int row = 0; row < m1.length; row++) 
{ 
    for(int column = 0; column < m1[row].length; column++) 
    { 
     m1[row][column] = input.nextInt(); 
    } 
} 
for (int row = 0; row < m2.length; row++) 
{ 
    for(int column = 0; column < m2[row].length; column++) 
    { 
     m2[row][column] = input.nextInt(); 
    } 
} 

//Print two array 
System.out.print("List1: "); 
for (int row = 0; row < m1.length; row++) 
{ 
    for(int column = 0; column < m1[row].length; column++) 
    { 
     System.out.print(m1[row][column] + " "); 
    } 
    System.out.println(); 
} 
//Print two array 
System.out.print("List2: "); 

for (int row = 0; row < m2.length; row++) 
{ 
    for(int column = 0; column < m2[row].length; column++) 
    { 
     System.out.print(m2[row][column] + " "); 
    } 
    System.out.println(); 
} 

L'entrée & sortie lors de l'exécution programme ci-dessus:

Enter List1 and List2 (18 numbers): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 
List1: 
1 2 3 
4 5 6 
7 8 9 
List2: 
10 11 12 
13 14 15 
16 17 18 
+0

Je suppose que je pensais trop, merci. –