Probleme: transferer les éléments d'une liste dans une matrice
ouided123
Messages postés9Date d'inscriptionvendredi 6 janvier 2017StatutMembreDernière intervention17 janvier 2017
-
Modifié par KX le 7/01/2017 à 20:13
ouided123
Messages postés9Date d'inscriptionvendredi 6 janvier 2017StatutMembreDernière intervention17 janvier 2017
-
7 janv. 2017 à 20:50
Bonjour
Svp j'ai un probleme lors du transfert de mes elements de la liste dans une matrice appelée: tableau, proposez moi des solutions Svp.
int index=0;
for(Character val : liste){
if(j<5){
tableau[i][j]=liste.get(index);
j++;
}
else{i++;
if(j<5){
tableau[i][j]=val;
j++;
}
}
for(i=0;i<tableau.length;i++){
for(j=0;j<tableau[i].length;j++){
System.out.print(tableau[i][j]+"|");
}
KX
Messages postés16733Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention31 janvier 2024127 7 janv. 2017 à 20:19
Bonjour,
Un exemple :
int a=3, b=4;
char[][] matrix = new char[a][b];
for (int i=0, n=Math.min(a*b, list.length); i<n; i++)
matrix[i/b][i%b] = list.get(i);
ouided123
Messages postés9Date d'inscriptionvendredi 6 janvier 2017StatutMembreDernière intervention17 janvier 2017 7 janv. 2017 à 20:24
Merci pour la reponse KX, mais je m'excuse je n'ais pas compris ce que vous avez fais dans la boucle For!!!!
si vous pouvez me donnez un peu d'explications,
Merci
KX
Messages postés16733Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention31 janvier 2024127 7 janv. 2017 à 20:39
J'ai fait comme ton
tableau[i][j]=val;
sauf qu'au lieu de gérer deux index i et j, je n'en utilise qu'un, celui de la liste.get(i).
Ensuite je place l'élément dans la matrice, à la ligne i/b (c'est à dire 0,0,0,0, 1,1,1,1, 2,2,2,2...) et à la colonne i%b (0,1,2,3, 0,1,2,3, 0,1,2,3...)
Pour que cela fonctionne il faut cependant s'assurer que l'on n'ai pas un i trop grand par rapport à la taille de la matrice. On prend donc la plus petite valeur entre a*b et list.length
ouided123
Messages postés9Date d'inscriptionvendredi 6 janvier 2017StatutMembreDernière intervention17 janvier 2017
>
KX
Messages postés16733Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention31 janvier 2024 7 janv. 2017 à 20:50
7 janv. 2017 à 20:24
si vous pouvez me donnez un peu d'explications,
Merci
7 janv. 2017 à 20:39
Ensuite je place l'élément dans la matrice, à la ligne i/b (c'est à dire 0,0,0,0, 1,1,1,1, 2,2,2,2...) et à la colonne i%b (0,1,2,3, 0,1,2,3, 0,1,2,3...)
Pour que cela fonctionne il faut cependant s'assurer que l'on n'ai pas un i trop grand par rapport à la taille de la matrice. On prend donc la plus petite valeur entre a*b et list.length
7 janv. 2017 à 20:50