0
votes

Imprimer un nombre variable dans la même ligne, pour aller à la Nexline après ce nombre de variable

Je veux laisser l'utilisateur entrer une longueur de colonne. Permet de dire '4'. Ensuite, il devrait ressembler à ceci:

1 2 3 4 P>

5 6 7 8 P>

9 10 11 12 P>

13 14 15 16 P >

sur un carré de 4 par 4. p>

Je ne m'attends pas à ce que mon code soit n'importe où près de la solution que je recherche. C'est juste une ligne d'impression simple. Mais celui-ci a besoin de modifier nécessaire. P>

Comment puis-je gérer cela? P>

package MagicMatrix;

import java.util.Arrays;
import java.util.Scanner;

public class Matrix
{

    Scanner scanner = new Scanner(System.in);   

    public static void main(String[] args)
    {

        new Matrix();

    }

    public Matrix() 

    {

        System.out.println("Give column length of matrix\n");

        int var00 = 1;
        int columnlength = scanner.nextInt();

        int [][] matrix = new int [columnlength][columnlength];


        for (int i=0; i < columnlength; i++) 
        {
            for (int j=0; j < columnlength; j++ )
            {
                matrix[i][j] = var00;
                var00++;
            }
        }

        for (int i=0; i < colomnlength; i++) 
        {
            for (int j=0; j < colomnlength; j++ )
            {

            System.out.print(matrix[i][j]); // The big question!!!!

            }
        }
    }

}


4 commentaires

Au lieu de jeter une tonne de code, pouvez-vous identifier ce qui ne fonctionne pas avec votre code?


@Frontear Si vous faites défiler, vous verrez une ligne qui est marquée «la grande question !!! ' C'est là que certaines adaptations doivent être faites!


Veuillez expliquer avec vos déclarations error ou les problèmes qui vous découlent dans la construction de la logique.


@PULKIT JATAV Actuellement, la ligne d'impression donne 12345678910111213141516 Mais je veux que ce soit comme 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 en rangées et colonnes de 4 par 4


3 Réponses :


0
votes

Je ne sais pas que je comprends complètement votre question, cela résoudra peut-être votre problème:

    for (int i=0; i < colomnlength; i++) 
    {
        System.out.print(matrix[i][0]);
        for (int j=1; j < colomnlength; j++ )
        {

            System.out.print(matrix[i][j]); // The big question!!!!

        }
        System.out.println();
    }


0 commentaires

2
votes

Contrairement à ce que vous avez dit dans votre question, vous étiez très proche de la solution. Il vous suffit de remplacer var1 code> (ce que je n'ai aucune idée d'où cela venait de) avec votre var00 code> et juste après la boucle interne (celle itératante avec j ) Ajouter un system.out.println () code> Pour aller à la ligne suivante après une ligne. Cela devrait théoriquement fonctionner.

for (int i=0; i < columnlength; i++) 
    {
        for (int j=0; j < columnlength; j++ )
        {
            matrix[i][j] = var00;
            var00++;
        }
    }

for (int i=0; i < columnlength; i++)
    {
        for (int j=0; j < columnlength; j++ )
            {
                System.out.print(matrix[i][j] + " "); 
            }
        System.out.println();
    }


2 commentaires

Ohhh merci man !! c'était ça. (À propos de ce VAR00 et VAR1, j'ai changé cela lors de la modification de ma question mais j'ai oublié de les changer tous). Mais votre suggestion était parfaite !!


@Twannemannn content que je puisse aider, n'oubliez pas de le marquer comme la bonne réponse si elle fonctionnait



1
votes

Vous pouvez y parvenir en utilisant uniquement deux boucles également.

import java.util.Scanner;

public class Hello
{
    public static void main(String[] args)
    {
        Scanner scanner = new Scanner(System.in);   

    int columnlength = scanner.nextInt();

    int [][] matrix = new int [columnlength][columnlength];
    int counter = 1;

    for(int i = 0;i<columnlength;i++) {
        for(int j=0;j<columnlength;j++) {
            matrix[i][j] = counter;
            System.out.print(counter+++"\t");
        }
        System.out.println();
    }

}

}


1 commentaires

Remplir la matrice avec le comptoir n'est probablement pas ce qu'il veut faire dans le programme résultant, mais il suffit d'avoir des données d'exemple. Dans tous les cas, il est généralement préférable de séparer le code de différentes fonctionnalités, comme le remplir une matrice et l'impression, même si cela produit un peu de plaque de chaudière.