Tri dans un tableau 2 dimension sous c++!!..
Fermé
ilyas.dll
Messages postés
53
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
27 août 2012
-
18 avril 2009 à 01:45
Edwyn Messages postés 105 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 31 mars 2011 - 29 mars 2011 à 17:07
Edwyn Messages postés 105 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 31 mars 2011 - 29 mars 2011 à 17:07
A voir également:
- Tri dans un tableau 2 dimension sous c++!!..
- Tableau croisé dynamique - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Comment faire un tableau - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
5 réponses
Je ne vois pas trop à quoi peut servir de trier un tableau à deux dimensions; enfin, bref, ce n'est pas mon problème.
Moi je le trierais en considérant qu'il s'agit d'un tableau à une dimension.
Par exemple pour trier 'tab[4][5]', je trierais en fait comme un tableau de 20 éléments; aucune difficulté en utilisant la notation:
*(&tab[0] + i + 4*j) ou *(&tab[0] + 5*i + j) avec 0 <= i < 4 et 0 <= j < 5
l'un ou l'autre suivant que l'on veuille trier dans le sens horizontal ou vertical.
Bon courage.
Moi je le trierais en considérant qu'il s'agit d'un tableau à une dimension.
Par exemple pour trier 'tab[4][5]', je trierais en fait comme un tableau de 20 éléments; aucune difficulté en utilisant la notation:
*(&tab[0] + i + 4*j) ou *(&tab[0] + 5*i + j) avec 0 <= i < 4 et 0 <= j < 5
l'un ou l'autre suivant que l'on veuille trier dans le sens horizontal ou vertical.
Bon courage.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
18 avril 2009 à 09:51
18 avril 2009 à 09:51
Salut,
Comme a dit loupius, la bonne façon est de considérer ton tableau 2D comme un simple tableau.
Par exemple :
Ou si tu n'aimes pas la notation (*tab)[i], tu peux utiliser un pointeur et te ramener exactement avec la même notation qu'un simple tableau.
Cdlt
Comme a dit loupius, la bonne façon est de considérer ton tableau 2D comme un simple tableau.
Par exemple :
int tab[5][5]; (*tab)[i]; avec i allant de 0 à 5*5;
Ou si tu n'aimes pas la notation (*tab)[i], tu peux utiliser un pointeur et te ramener exactement avec la même notation qu'un simple tableau.
int tab[5][5]; int *p=*tab; p[i]; avec i allant de 0 à 5*5;
Cdlt
ilyas.dll
Messages postés
53
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
27 août 2012
17
19 avril 2009 à 23:16
19 avril 2009 à 23:16
ok je vais tenter!!...merci mec!!
Edwyn
Messages postés
105
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
31 mars 2011
14
29 mars 2011 à 17:07
29 mars 2011 à 17:07
Bonjour,
En fait en C++ (en C aussi d'ailleur) Quand tu déclare un tableau disons:
https://chgi.developpez.com/pointeur/
Cordialement,
En fait en C++ (en C aussi d'ailleur) Quand tu déclare un tableau disons:
int tab[5][5];Ton programme se réserve en mémoir un tableau de 25 int consécutif. Donc se déplacer dans un tableau à 2 dimensions de taille 5 par 5 revient à se déplacer dans un tableau de taille 25. Car ton
tabn'est rien d'autre qu'un pointeur sur une zone mémoire et avec l'arithmétique des pointeur, ajouter 1 à un pointeur de type int revient à décaler le pointeur de la taille d'un int sur ton architecture.
https://chgi.developpez.com/pointeur/
Cordialement,
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question