2013-03-04 2 views
0

J'essaie de créer une matrice NxN en utilisant des boucles intégrées. Je pense que je l'ai presque, mais j'ai l'impression qu'il me manque quelque chose dans les boucles. L'utilisateur est supposé me donner n et je génère la matrice basée sur cette entrée.Matrice NxN utilisant des boucles incorporées

public static void printMatrix(int n){ 



    for (int i = 1; i < n; i++){ 
     System.out.println(" "+(int)(Math.random() + 0.5)); 

     for(int k = 1; k < n+1; k++) 
      System.out.print(" "+(int)(Math.random() + 0.5)); 

    } 
} 
+4

Avez-vous essayé d'exécuter ceci? Que ressentez-vous qui manque? – iamnotmaynard

+2

Oui, il vous manque beaucoup. Je ne vois pas de matrice ici, juste deux boucles. – duffymo

Répondre

2

Vous n'avez besoin que de l'instruction print dans la deuxième boucle pour imprimer une "matrice". à savoir,

public static void printMatrix(int n) 
{ 
    for(int i = 1; i <= n; i++) 
    { 
     for(int k = 1; k <= n; k++) 
      System.out.print("\t"+(int)(Math.random() + 0.5)); 
     System.out.println(); 
    } 
} 

En fait, ici vous ne créez pas vraiment une matrice (ce qui signifie que vous n'êtes pas le ranger dans une structure, dire un tableau 2D), mais ne sont l'impression de n*n nombre de valeurs aléatoires.

Pour ce faire aussi bien,

public static void printMatrix(int n) 
{ 
    int[][] yourArray = new int[n][n]; 
    for(int i = 1; i <= n; i++) 
     for(int k = 1; k <= n; k++) 
      yourArray[i][k] = Math.random() + 0.5; //Populating the array. 
    for(int i = 1; i <= n; i++) 
    { 
     for(int k = 1; k <= n; k++) 
      System.out.print("\t"+yourArray[i][k]); //Reading data from the array. 
     System.out.println(); 
    } 
} 
+0

Où est la matrice? – user93353

0

Il semble que vous essayez d'utiliser la première boucle for pour contrôler le nombre de lignes dans la matrice. C'est une bonne idée mais jetez un oeil à votre première boucle

for (int i = 1; i < n; i++) 

Combien d'itérations y aura-t-il?

Maintenant, il semble que vous essayez d'imprimer tous les éléments d'une ligne en utilisant la deuxième boucle for, ce qui est également une bonne idée. Le seul problème est que vous imprimez un nombre aléatoire supplémentaire avec une nouvelle marque de ligne avant d'imprimer les éléments de la ligne à l'intérieur de cette seconde for. Rappelez-vous que vous imprimez déjà tous les éléments de cette ligne à l'intérieur de la seconde pour que vous n'ayez pas besoin d'en imprimer un autre avant.

Essayez également d'imprimer une nouvelle marque de ligne après avoir imprimé la ligne entière si vous ne souhaitez pas terminer avec une ligne vide au début.

Questions connexes