Qsort sur une ligne d'un tableau 2d

Signaler
Messages postés
36
Date d'inscription
samedi 3 février 2007
Statut
Membre
Dernière intervention
26 mai 2008
-
Messages postés
36
Date d'inscription
samedi 3 février 2007
Statut
Membre
Dernière intervention
26 mai 2008
-
Bonjour.
Jai un tableau des x,y,z de N éléments. J'aimerais trier ce tableau selon sa 3ème ligne par ordre croissant or quand j'appele qsort, il le fait que selon la 1ère ligne. Comment faire pour que le tri se fasse selon la 3ème ligne?

voici mon code :

static int compare (void const *a, void const *b)
    {
       /* definir des pointeurs type's et initialise's
          avec les parametres */
       int const *pa = a;
       int const *pb = b;
   
       /* evaluer et retourner l'etat de l'evaluation (tri croissant) */
       return *pa - *pb;
}

  qsort (T, N, sizeof *T, compare );   

Spartan

2 réponses

Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
Salut il faut que tu lui precise la relation de supériorité sinon il ne sait pas sur quel donnée travailler.

bool operator<(const Point3D &Pt1, const Point3D &Pt2)
{
    return Pt1.z < Pt1.z;
}

et la il devrait te trier ton tableau comme tu le veux.
A+
Messages postés
36
Date d'inscription
samedi 3 février 2007
Statut
Membre
Dernière intervention
26 mai 2008

La ligne : " return *pa - *pb; " fait office de test de supériorité. Etant donné que la fonction renvoit un entier : 0 si a=b, <0 si a0 si a>b. (donc ça ne m'aide pas)

Spartan