A voir également:
- Tri d'un tableau de struct
- Trier un tableau excel - Guide
- Tableau word - Guide
- Tableau ascii - Guide
- Tableau croisé dynamique - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
2 réponses
Garby
Messages postés
133
Date d'inscription
samedi 7 octobre 2006
Statut
Membre
Dernière intervention
28 juin 2023
16
25 janv. 2010 à 16:19
25 janv. 2010 à 16:19
Bonjour,
Je n'ai pas épluché ton code en détail mais dans la permutation de ta fonction de tri, tu pointes effectivement sur les noms et non sur les structures.
Il y a plus de 15 ans que je n'ai pas écrit une ligne de C, les indirections ne sont plus très claires pour moi mais dans le principe voici ce qu'il faut écrire :
if(strcmp(e[i].nom,e[j].nom)>0)
{
p=e[i];
e[i]=e[j];
e[j]=p;
}
p n'étant plus un char* mais du type de ta structure (ou un pointeur sur ta structure... comme dit précédemment, ca n'est plus très clair pour moi...)
Le test se fait sur le nom de ton contact mais ce sont les structures entières que l'on permute.
Garby.
Je n'ai pas épluché ton code en détail mais dans la permutation de ta fonction de tri, tu pointes effectivement sur les noms et non sur les structures.
Il y a plus de 15 ans que je n'ai pas écrit une ligne de C, les indirections ne sont plus très claires pour moi mais dans le principe voici ce qu'il faut écrire :
if(strcmp(e[i].nom,e[j].nom)>0)
{
p=e[i];
e[i]=e[j];
e[j]=p;
}
p n'étant plus un char* mais du type de ta structure (ou un pointeur sur ta structure... comme dit précédemment, ca n'est plus très clair pour moi...)
Le test se fait sur le nom de ton contact mais ce sont les structures entières que l'on permute.
Garby.
Garby
Messages postés
133
Date d'inscription
samedi 7 octobre 2006
Statut
Membre
Dernière intervention
28 juin 2023
16
25 janv. 2010 à 17:22
25 janv. 2010 à 17:22
Pour l'adresse et le fax, remplace le %d par un %s dans tes printf... :-)
Bon courage.
Garby
Bon courage.
Garby
maintenant j essai d'elaborer le meme programme, mais cette fois-ci en triant les prenoms, ce que j ai fais c est le mm programme que le tri pour les nom, mais lors de l execution du nouveau programme, un probleme se deroule, j ai un message "tri_prenom.exe ne fonctionne pas"!! par contre le programme utilisant le tri par nom fonctionne tres bien... vous croyez que c est du a quoi??
Garby
Messages postés
133
Date d'inscription
samedi 7 octobre 2006
Statut
Membre
Dernière intervention
28 juin 2023
16
>
peli20
25 janv. 2010 à 18:05
25 janv. 2010 à 18:05
pas simple la programmation... ;-)
Alors, la seule chose à changer pour le tri sur les prénoms c'est la ligne de test de la fonction de tri
if(strcmp(e[i].nom,e[j].nom)>0)
à remplacer par
if(strcmp(e[i].prenom,e[j].prenom)>0)
mais ça, je pense que tu l'as fait.
Si l'erreur est à l'exécution et non à la compilation, regarde déjà du côté de tes données. As-tu des caractères accentués dans tes chaînes de caractères ? ils peuvent parfois poser problème.
Et puis sinon, tu dois très certainement avoir un débuger dans ton environnement de développement...
Alors, la seule chose à changer pour le tri sur les prénoms c'est la ligne de test de la fonction de tri
if(strcmp(e[i].nom,e[j].nom)>0)
à remplacer par
if(strcmp(e[i].prenom,e[j].prenom)>0)
mais ça, je pense que tu l'as fait.
Si l'erreur est à l'exécution et non à la compilation, regarde déjà du côté de tes données. As-tu des caractères accentués dans tes chaînes de caractères ? ils peuvent parfois poser problème.
Et puis sinon, tu dois très certainement avoir un débuger dans ton environnement de développement...
peli20
>
Garby
Messages postés
133
Date d'inscription
samedi 7 octobre 2006
Statut
Membre
Dernière intervention
28 juin 2023
25 janv. 2010 à 18:14
25 janv. 2010 à 18:14
en ce qui concerne strcmp, j ai fait le changement adecuat, ...j essaierai une autre fois, peut etre il ya un boucle infini quelquepart..
25 janv. 2010 à 16:45
25 janv. 2010 à 16:51
votre correction etait bonne..maintenant j ai un autre problème..lorsque je saisi l'adresse et le fax du contact,
j ecris par exemple "hhh" et ce que j obtient lors de l affichage d c q javais saisis ce sont des nombres et non pas la chaine de caractere que j avais saisi :-S