0
votes

Créer une matrice carrée

Bonjour peut-être quelqu'un s'il vous plaît aidez-moi s'il vous plaît, j'essaie de faire une matrice carrée en Java avec ce format: xxx pré>

Ce que je veux, c'est que le code génère une table avec la taille spécifiée par l'utilisateur et l'imprime avec le format donné ci-dessus. P>

Je pensais que je l'ai déjà fini, mais lorsque j'entraîne un nombre impair sous forme de colonne, il ajoutera toujours une autre colonne. Donc, par exemple,
** Entrée: ** Je suis entré 3 code> comme non. des colonnes code>,
** Sortie: ** Il imprimera quatre ( 4 code>). P>

Voici mon code (écrit en Java): P>

System.out.print("Enter Number(s) of ROW: ");

int numRow = in.nextInt();
System.out.print("Enter Number(s) of COLUMN: ");

int numCol = in.nextInt();
int [][] Table = new int[numRow][numCol];
int ctr=0;

for(int row=0; row<numRow; row++) 
{
        for(int col=0; col<numCol; col++)
        {
                Table[row][col]= (col*numRow)+row+1;
                System.out.print(Table[row][col]+"\t");

                for(int i=col+1; i<=numRow; i++)
                {   
                    ctr=(numRow-1)-row;
                    Table[row][col]= (i*numRow)+ctr+1;
                    System.out.print(Table[row][col]+"\t"); 
                    i=numRow;
                }
                col++;               
        }
        System.out.println();
}


3 commentaires

J'utilise Java, je suis désolé de ne pas être capable de préciser cela il y a quelque temps. ✌️


Travaille-t-il avec un nombre pair? Je ne pense pas si


Euh, oui c'est pas. Je viens de l'essayer haha. Désolé si je suis trop ignorant de la programmation. Je suis juste neuf dans ce domaine. 😅


4 Réponses :


0
votes

Autres réponses, votre problème provient de la 3ème boucle. Mais pour plus clairement, j'ai divisé votre travail en 2 parties, ils construisent et affichent.

Construisez votre matrice en premier. P>

for(int i = 0;i<numRow;i++){
    for(int j=0;j<numCol;j++)
    System.out.print(Table[i][j]);
    if(j==numCol-1) System.out.print("\n");
    else System.out.print("|");
}


0 commentaires

0
votes

Utilisez << / code> au lieu de <= dans votre 3ème boucle: xxx


1 commentaires

@Makoy le plus accueilli, vous pouvez accepter cette réponse si cela vous a aidé.



0
votes

Le problème semble venir de ceci: pour (int i = col + 1; i <= numrow; i ++)
Vous exécutez votre boucle avec I inférieure ou égale à numrow, ce qui signifie que lorsque vous utilisez les instructions pour définir votre valeur de cellule: table [ligne] [col] = (i * numrow) + CTR + 1 Si votre numéro de colonne maximum est 3, il remplira la table [ligne] [3], comme l'indice des tableaux commence à 0, il ajoutera une quatrième colonne.


0 commentaires

1
votes

Utilisez ce code:

import java.util.Scanner;

public class Teas {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
    System.out.print("Enter Number(s) of ROW: ");

    int numRow = in.nextInt();

    System.out.print("Enter Number(s) of COLUMN: ");

    int numCol = in.nextInt();

    int [][] Table = new int[numRow][numCol];

    int ctr=0;

    for(int row=0; row<numRow; row++) 
    {
            for(int col=0; col<numCol; col++)
            {
                if(col%2 == 0){Table[row][col] = (col * numRow +1 )+ row;}
                else{Table[row][col] = (numRow * (col + 1))- row;}
            }
    }
        for(int row=0; row<numRow; row++) 
    {
            for(int col=0; col<numCol; col++)
            {
                System.out.print(Table[row][col] +"|");
            }
            System.out.println("");
    }

    }

    }


1 commentaires

Oh merci beaucoup. Non seulement cela a fait ce que je voulais, mais corrige également certains de mes problèmes que je n'ai pas pu inclure dans la description. Se réjouit mon ami, merci tellement tellementhh