chental
Messages postés31Date d'inscriptionvendredi 22 août 2003StatutMembreDernière intervention15 mars 2015
-
4 août 2006 à 10:06
henrydessss
Messages postés12Date d'inscriptionjeudi 16 mars 2006StatutMembreDernière intervention 9 octobre 2006
-
6 oct. 2006 à 12:54
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)
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++
Vous n’avez pas trouvé la réponse que vous recherchez ?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 4 août 2006 à 11:01
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:
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 4 août 2006 à 11:24
eh bien fais du realloc() si tu le crois indispensable mais c'est couteux en cycles donc mauvais pour les perfs, à toi de savoir si le benef mémoire vaut la peine.
henrydessss
Messages postés12Date d'inscriptionjeudi 16 mars 2006StatutMembreDernière intervention 9 octobre 2006 5 oct. 2006 à 20:11
Bonjour,
mon probleme est presque similaire à celui plus haut, de fait, je ne vais pas créer une nouvelle discussion.
probleme meme QUASI similaire, mais j'ai pas tres bien saisie la solution ptoposée.
alors voila mon cas :
j'ai cette structure :
struct repertoire
{
char nom[20];
char prenom[20];
//je zape les autres champs peu interessants ici
};
typedef struct repertoire Repertoire;
Repertoire contact[4];
//j'en ai bien plus mais peu importe pour la resolution de mon soucis
contact[0].nom="Aaba";
contact[1].nom="Abce";
contact[2]..nom="Vaer";
contact[3]..nom="Feaa";
je m'occupe pas du prenom, numero de tel, etc...
j'aimerai afficher chaque contact (toutes les données par contact : nom, prenom, email, etc...) dans l'ordre alphabetique du NOM.
j'ai bien compris que la solution proposée plus haut est du meme acabit que celle dont j'ai besoin, mais je ne la comprends pas et elle n'a pas l'air de fonctionner chez moi. de plus, j'ai essayé par moi meme (voila 4 jours que je suis dessus) et ca ne tourne pas comme je l'aimerai.
Bien à vous,
JB
henrydessss
Messages postés12Date d'inscriptionjeudi 16 mars 2006StatutMembreDernière intervention 9 octobre 2006 6 oct. 2006 à 12:54
merci. en effet, mais ca ne trie pas pour autant ;)
mais meme is j'utilisais strcpy ailleurs dans mon code, oui, je vais rectifier le tir.
merci, et j'esperre toruver tout de meme une rpeonse a mon probleme :)
jb