begin process at 2012 05 30 19:03:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Divers

 > 

Tri tableau de structure


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Tri tableau de structure

vendredi 4 août 2006 à 10:06:55 | Tri tableau de structure

chental

Salut à tous,

Quelqun pourrait m'aider à trier à un tableau de structure ?

Tri par nom et code;
j'essaie le qsort mais je n'y arrive pas
Voici ma structure :
typedef struct  /* Déclaration de notre structure */
{
    char nom[30];
    char code;
    int cotes[2];
}Element;

Element Pelm;

Pelm=malloc(5 * sizeof(Element);

Pelm[1].nom="TOTO";Pelm[1].code='A';Pelm[1].cotes[1]=25;Pelm[1].cotes[2]=31;
Jusque là tout est ok;
etc....(pour le remplissage du tableau)
vendredi 4 août 2006 à 10:21:31 | Re : Tri tableau de structure

turnerom

Re,
je sais pas si tu peuc, mais fait ton programme en c++, ca te simplifira enormement la tache:

typedef struct  /* Déclaration de notre structure */
{
    std::string nom;
    std::string code;
    int cotes[2];
}Element;

std::list<Element> liste;

Element e;

e.nom="TOTO";
e.code="A";
e.cotes[0]=25;
e.cotes[1]=31;

liste.push_back(e);

e.nom="TITI";
e.code="B";
e.cotes[0]=12;
e.cotes[1]=48;

liste.push_back(e);


ensuite un liste.sort() et c'est fini.

TuRn3r
vendredi 4 août 2006 à 10:27:14 | Re : Tri tableau de structure

chental

Tout le programme est en C, je ne peux plus changer surtout que j'envisage sa portabilioté vers d'autres sys. Obligé de continuer en C
vendredi 4 août 2006 à 10:30:55 | Re : Tri tableau de structure

laurent1024

Membre Club
Réponse acceptée !
int compare (const void * a, const void * b)
{
Element * pa = (Element*)a;
Element * pB = (Element*)b;
int comp = strcmp(pa->nom, pb->nom);
if(comp==0)
  return ( pa->code - pa->Code);
else
return comp;
}
/////
 Element * pElem = malloc(5*sizeof(Element));
// initialisation des element du tableau
...
//tri
qsort (pElem, 5, sizeof(Element), compare);


++
vendredi 4 août 2006 à 10:32:07 | Re : Tri tableau de structure

BruNews

Administrateur CodeS-SourceS

Pelm[1].nom = "TOTO";
Pelm[1].code = 'A';
Pelm[1].cotes[1] = 25;
Pelm[1].cotes[2] = 31;

JUSQUE LA TOUT EST FAUX !!!
Plonge toi dans un bouquin de C illico.
- Un tableau de n éléments s'indexe de 0 à n-1.
- '=' sur une chaine attribuera une adresse mémoire mais ne copiera jamais la chaine, voir strcpy().
Le tri sera à étudier bien plus tard, ici il manque les bases indispensables.

turnerom > ce n'est pas une réponse, pourquoi pas en vb aussi, sera surement encore plus facile. Les gens doivent avoir de solides bases avant de se servir de couches d'abstraction.

ciao...
BruNews, MVP VC++

vendredi 4 août 2006 à 10:33:19 | Re : Tri tableau de structure

turnerom

Re : Tri tableau de structure par : chental le 04/08/2006 10:27:14
Répondre Rép.Ecrire un message privé MPVoir les autres messages de ce membre 3 msgVoir les autres messages de ce membre sur tout CS 12 msg CS
Tout le programme est en C, je ne peux plus changer surtout que j'envisage sa portabilioté vers d'autres sys. Obligé de continuer en C


--> OK mais je vois pas pourquoi ca t'empecherai de le portabilioté vers d'autres sytemes !

TuRn3r
vendredi 4 août 2006 à 10:51:22 | Re : Tri tableau de structure

chental

BruNews, tu vois bien que je l'ai écrit avec empressement, bien sûr que ça commence par 0.
vendredi 4 août 2006 à 10:54:13 | Re : Tri tableau de structure

chental

Par contre, si tu pouvais me dire comment supprimer un élément du tableau ce serait génial, car avec Pelm[1]=0, j'ai une erreur
vendredi 4 août 2006 à 11:01:47 | Re : Tri tableau de structure

BruNews

Administrateur CodeS-SourceS
On ne retire pas un elem d'un tableau sinon il faut faire de la realloc mémoire etc...
Ajoute un flag d'emploi ou non dans ta structure, sera beaucoup plus efficace surtout que tu as un octet non employé derrière le membre 'code'.
Deviendrait par exemple:

typedef struct _Element {
  char nom[30];
  char code;
  char inuse;
  int cotes[2];
} Element;

Tu passes 'inuse' de 0 ou != 0 si la struct est remplie.

ciao...
BruNews, MVP VC++
vendredi 4 août 2006 à 11:11:47 | Re : Tri tableau de structure

chental

Le realloc, je m'y connais je pourrais eventuellement faire Pelm=realloc(Pelm, (5-1) * sizeof(Element));

Pas vrai ?


1 2

Cette discussion est classée dans : code, tableau, tri, structure, pelm


Répondre à ce message

Sujets en rapport avec ce message

Structures nommées incompréhensible ... à l'aide [ par otterc8 ] Bonjour, voila j'ai ce bout de code que je ne comprends pas top, malgré des recherches sur les structures, il y a des choses que je ne comprends pas! Allocation tableau dynamique ds structure [ par chental ] Salut à tous,Sauriez vous me dire comment allouer dynamiquement un tableau dans une structure ?J'arrive à faire l'essentiel mais dans la structure je tri tableau structure [ par blinix123 ] y a t'il une difference entre un tri de tableau normal (dichotomie,tri a bulle,...) et un tri de tableau de structure (donc un tableau qui contient de tri de tableau de structure [ par samhmi ] Je veux trier un tableau de structure selon le degre décroissant tel que chaque case est de structure suivantestruct sommet{    int degré;    int arc[ fonction qui retourne une structure [ par lamiaa1984 ] Bonjour tout le Mondeje souhaite lire un ficher et mettre ses valeurs dans des variables, puis je veux affecter ces variable dans des variable d'une s taille tableau de structure. [ par macbang ] Bonjour, Mon programme fonctionne très bien pour le moment. Le seul hic c'est que j'ouvre un fichier texte pour le découper ligne par ligne. Pour l'in Définition structure [ par Willi ] Bonsoir, Que signifie la valeur qui suit les ':' d'un membre d'une structure ? (Voir ci-dessous) [code=cpp] typedef struct { ULONGLONG Member1:48; scanner un code barre [ par ankou001 ] Bonjour; j'aimerai scanner un code barre avec une douchette et le mettre directement dans une case d'un tableau sans etre obligé de sélèctionner ma ca probleme d'initialisation d'un tableau sous code blocks [ par juju116 ] bonjour j'ai voulu juste tester un code bidon pour voir si mon initialisation de tableau fonctionné et j'ai obtenu des résults incoherents je n'ai que


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,874 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales