Les tableaux en c

toto9340 -  
 toto9340 -
Bonjour,
comment on peut transformer un tableau à deux dimension à un tableau uni-dimensionnel
/* Affichage du tableau 2-dim */
printf("Tableau donné :\n");
for (I=0; I<L; I++)
{
for (J=0; J<C; J++)
printf("%7d", M[I][J]);
printf("\n");
}
/* Transfer des éléments ligne par ligne */
for (I=0; I<L; I++)
for (J=0; J<C; J++)
V[I*C+J] = M[I][J]; => j'ai pas compris ça veut dire quoi ?!!!!!!!
/* Affichage du tableau 1-dim */
printf("Tableau résultat : ");
for (I=0; I<L*C; I++)
printf("%d ", V[I]);
printf("\n");
return 0;
}
merci.
Configuration: Windows XP
Safari 532.0

2 réponses

  1. totofrancois Messages postés 420 Statut Membre 44
     
    V[I*C+J] = M[I][J]; => j'ai pas compris ça veut dire quoi ?!!!!!!!

    Le tableau V prend pour valeur la donnée contenu dans la matrice au coordonnées (i,j) et mets ça dans le tableau à l'indice ixc+j

    exemple : V sera de la forme : (c=4 et l=4)

    V[0] V[1] V[2] V[3] V[4]= V[C] dans mon exemple
    V{ M[0][0], M[0][1], M[0][2],M[0][3], M[1][0]... }
    0
    1. toto9340
       
      salut , merci pour ta reponse , l'ai pas compris la logique de ce calcul V[I*C+J] = M[I][J] .
      merci.
      0
  2. totofrancois Messages postés 420 Statut Membre 44
     
    Ce calcul te permet de retrouver ta matrice initiale à partir du tableau résultat
    V[0]=M[0][0]
    V[1]=M[0][1]
    V[2]=M[0][2]
    V[3]=M[0][3]
    V[4]=M[1][0]
    V[5]=M[1][1] ---- 5 = 1*4 + 1 Donc si tu connais le 4 tu peux reconstituer ta matrice
    V[6]=M[1][2] ----- car 5/4 = 1 et 5%4 = 1 don M[1][1]
    V[7]=M[1][3]
    V[8]=M[1][4]
    V[9]=M[2][0]
    V[10]=M[2][1]
    V[11]=M[2][2]
    V[12]=M[2][3]
    V[13]=M[2][4]
    V[14]=M[3][0]
    V[15]=M[3][1]
    V[16]=M[3][2]
    V[17]=M[3][3]
    V[18]=M[3][4]
    V[19]=M[4][0]
    V[20]=M[4][1]
    V[21]=M[4][2]
    V[22]=M[4][3] ravi d'avoir pu t'aider
    V[23]=M[4][4]
    0
    1. toto9340
       
      je remercie beaucoup pour ton aide .
      bonne journée .
      0