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: 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, Voici mon code (écrit en Java): P>
** Entrée: ** Je suis entré 3 code> comme non. des colonnes code>,
** Sortie: ** Il imprimera quatre ( 4 code>). 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();
}
4 Réponses :
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("|");
}
Utilisez << / code> au lieu de <= code> dans votre 3ème boucle:
@Makoy le plus accueilli, vous pouvez accepter cette réponse si cela vous a aidé.
Le problème semble venir de ceci:
pour (int i = col + 1; i <= numrow; i ++) code>
Vous exécutez votre boucle avec I inférieure ou table [ligne] [col] = (i * numrow) + CTR + 1 code>
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. P>
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("");
}
}
}
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
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. 😅