Bonjour,
comment puis je faire passer la valeur de chaque case d'un tableau en 2dimension (tablo[i][j]) vers un tableau en 1 dimension (tablo2[k]) ?
genre tableau[10][10] vers tableau[100], avec dans chaque case un bool ?
Merci pour les reponses.
![]()
Bonjour,
comment puis je faire passer la valeur de chaque case d'un tableau en 2dimension (tablo[i][j]) vers un tableau en 1 dimension (tablo2[k]) ?
genre tableau[10][10] vers tableau[100], avec dans chaque case un bool ?
Merci pour les reponses.
![]()
Quelque chose comme ça ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 for (int i=0; i<10; ++i) for (int j=0; j<10; ++j) tablo2[i*10+j] = tablo[i][j];
En parcourant tout ton premier tableau et en ajoutant à chaque fois l'entrée dans le second.
Pour N = la largeur de ton tableau, et M sa longueur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 t = 0; i = 0; while (i < N) { while (j < M) { tablo2[t] = tablo[i][j] j++; t++; } i++; }
merci pour ces reponses,
pour Eucebe,
ta reponse est interressante seulement ont arrive pour la case tablo[10][10] à tablo2[110] càd hors des limites du tableau.
pour kazhar, je suis en ce moment même en train de tester cette solution.
A +
korp69
C'est EusebeEnvoyé par korp69
![]()
tablo[10][10] n'existe pas si tu as un tableau de deux dimensions de 10 éléments (de 0 à 9...)Envoyé par korp69
De façon plus dénérale, si tu déclares un tableau[x][y], tu peux le convertir en un tableau[x*y+y].
Imaginons les tableaux suivant :
tablo1[5][5] et tablo2[25]
selon la formule
tablo1[0][0]= tablo2[0*0 + 0] ici ça marche
tablo1[1][0]= tablo2[1*0 + 0] et ça fait aussi 0
tablo1[2][0]= tablo2[2*0 + 0] encore zero
...
(le dernier, enfin je crois) tablo1[4][4] = tablo2[4*4 + 4] ici 21 et on est loin de la borne, 24.
J'ai mal du comprendre.
J'ai trouvé la reponse !!! Enfin ma femme![]()
tablo1[5][5] et tablo2[25] = tablo1[i][j] et tablo2[k]
La formule est k = j + 5i
donc
selon la formule
tablo1[0][0]= tablo2[0 + 5*0] = 0
tablo1[1][0]= tablo2[0 + 5*1] = 5
tablo1[0][1]= tablo2[1 + 5*0] = 1
tablo1[2][0]= tablo2[0 + 5*2] = 10
...
le dernier tablo1[4][4] = tablo2[4 + 5*4] 24, soit pile poile dans la borne.
Aaaaah les femmes. Elles m'etonneront toujours. Merci cherie
Love.
Korp69
Oui, c'est ça, bravo à ta femme
Ce que je te donnais, c'était les dimensions du tableau (x et y). Mais pour accéder à l'élément a,b dans le tableau à une dimension, il faut bien faire a*y+b.
Désolé de ne pas avoir été plus clair![]()
Partager