Pb triage de chaine dans un tableau en C
Fermé
im4d
-
31 mai 2008 à 14:32
daronmaster Messages postés 326 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 11 mai 2009 - 1 juin 2008 à 16:38
daronmaster Messages postés 326 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 11 mai 2009 - 1 juin 2008 à 16:38
A voir également:
- Pb triage de chaine dans un tableau en C
- Tableau croisé dynamique - Guide
- Afficher un tableau en c - Forum C
- Excel extraire chaine de caractère après un caractère ✓ - Forum Excel
- Tableau ascii - Guide
- Le fichier contient le nombre de voyageurs dans 3 gares. dans la cellule b5, saisissez une formule qui calcule le total et se met à jour si on change une valeur du tableau. quel total obtenez-vous ? quelle formule avez-vous saisie ? ✓ - Forum Excel
2 réponses
Brachior
Messages postés
613
Date d'inscription
dimanche 21 octobre 2007
Statut
Membre
Dernière intervention
22 juin 2009
46
31 mai 2008 à 14:58
31 mai 2008 à 14:58
tu veux mettre le tableau vide ?
si tu marque Liste_personne[i]=="";
alors tu fais une comparaison
retire un = pour donner la valeur
et ton j semble inutile Oo
de plus il n'est pas utile de mettre a zero ton tableau car lorsque tu y rentre un string grace a %s,
le programme fini la chaine par \0
enfin bn c'est pas la le prob ^^
euh t'as essayé d'afficher le tableau avant le tri pour voir ce qu'il t'affiche ?
si tu marque Liste_personne[i]=="";
alors tu fais une comparaison
retire un = pour donner la valeur
et ton j semble inutile Oo
de plus il n'est pas utile de mettre a zero ton tableau car lorsque tu y rentre un string grace a %s,
le programme fini la chaine par \0
enfin bn c'est pas la le prob ^^
euh t'as essayé d'afficher le tableau avant le tri pour voir ce qu'il t'affiche ?
daronmaster
Messages postés
326
Date d'inscription
vendredi 12 janvier 2007
Statut
Membre
Dernière intervention
11 mai 2009
44
1 juin 2008 à 15:34
1 juin 2008 à 15:34
et au passage,
for(i=0,j=0;i<Nom_personne,j<Taille_nom;i++,j++)
Liste_personne[i]=="";
ne sert à rien et n'a aucun sens ... un seul indice utilisé (i) et test d'égalité non interpréter et sans aucun sens
salut
tchû
for(i=0,j=0;i<Nom_personne,j<Taille_nom;i++,j++)
Liste_personne[i]=="";
ne sert à rien et n'a aucun sens ... un seul indice utilisé (i) et test d'égalité non interpréter et sans aucun sens
salut
tchû
Brachior
Messages postés
613
Date d'inscription
dimanche 21 octobre 2007
Statut
Membre
Dernière intervention
22 juin 2009
46
1 juin 2008 à 16:28
1 juin 2008 à 16:28
je l'ai deja mentionné ds le 1er post ^^
mais tu as raison de repreciser qu'il est inutile de surcharger un programme inutilement ^^
mais tu as raison de repreciser qu'il est inutile de surcharger un programme inutilement ^^
daronmaster
Messages postés
326
Date d'inscription
vendredi 12 janvier 2007
Statut
Membre
Dernière intervention
11 mai 2009
44
>
Brachior
Messages postés
613
Date d'inscription
dimanche 21 octobre 2007
Statut
Membre
Dernière intervention
22 juin 2009
1 juin 2008 à 16:38
1 juin 2008 à 16:38
yep!!!
31 mai 2008 à 15:09
entrez nom:
paul
entrez nom:
robert
entrez nom:
alane
les noms sont stocké dans un tableau et ensuite il affiche les nom par ordre alphabétique comme ceci:
alane
paul
robert
qd j affiche sans la boucle de tri sa marche ,evidemment c pas trié,mais qd j'essaye d'afficher ac un tri sa ne fctionne pas
31 mai 2008 à 15:15
c'etait un probleme de taille de tableau
j'ai du mettre mon tableau tmp 10fois plus gd que le tableau contenant la chaine
je sais pas si c'est ca mais je sais que
soit il m'affichait "erreur de segmentation"
soit il plantait
( j'allume l'emulateur et j'essaye chez moi ^^ )
31 mai 2008 à 15:29
j'test chez moi et ca fct Oo
( bn par contre j'ai du modifier les p'tites erreurs ^^ )
voila le code qui fct chez moi :
#include<stdio.h> #include<string.h> #define Nom_personne 100 #define Taille_nom 100 main(){ //-----------Sequence d'initialisation----------- char Liste_personne[Nom_personne] [Taille_nom]; char nom[Taille_nom],tempnom[Taille_nom]; int i,j,k,terminer=0,c=0; for(i=0,j=0;i<Nom_personne,j<Taille_nom;i++,j++) Liste_personne[i]==""; //------------------Corps du programme-------------- //---------Boucle de saisie de nom----------- do{ printf("Entrez un nom(fin pour terminer les saisies)\n"); scanf("%s",nom); terminer=((strcmp(nom,"fin"))==0); //compare le nom entré et le mot fin,si renvoi 0 alors le pgm est terminé if(!terminer){ //enregistre au fur et a mesure les nom dans le tableau Tant que client n entre pas fin strcpy(Liste_personne[c],nom); c++;}} while(!terminer); //-------Boucle de tri du tableau------ for(i=0;i<c;i++){ k=i; while( (k>0) && (strcmp(Liste_personne[k],Liste_personne[k-1])<0) ){ strcpy(tempnom,Liste_personne[k-1]); strcpy(Liste_personne[k-1],Liste_personne[k]); strcpy(Liste_personne[k],tempnom); k--;}} //----------Boucle d'affichage du tableau------------- for(i=0;i<c;i++) printf("la personne numero %d est %s\n",i,Liste_personne[i]);}1 juin 2008 à 00:54
1 juin 2008 à 00:58
for(i=0;i<c;i++); {j'crois que le ; etait aussi de trop ^^