Tri nom

sambio Messages postés 6 Statut Membre -  
fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   -
bonjour,la boucle tourne qu'une seule fois
typedef struct eleve
  {
     char nom[ligne][colone];
     int age;
     float moy;
     float note[3];
     float rang;

  }eleve;
void ajouter()
{
  eleve individu[100];
  int n,i;
  float som=0;

  printf("entrer le nombre delts:");scanf("%d",&n);
    for(i=0;i<n;i++)
    {

       printf("entrer le nom:");scanf("%s",&individu[i].nom);
       printf("entrer son age:");scanf("%d",&individu[i].age);
       printf("entrer ses note\n");
       printf("\tmath:");scanf("%f",&individu[i].note[0]);
       printf("\tphy:");scanf("%f",&individu[i].note[1]);
       printf("\tinfo:");scanf("%f",&individu[i].note[2]);

    }
    affiche(individu,n);
    tri_nom(individu,n);
    affiche(individu,n);

}
void tri_nom(eleve tab[],int n)
{
  int i,ok=1;
  eleve aux1[100];
  while(ok==1)
  {
    ok=0;
     for(i=0;i<n;i++)
     {

       if(strcmp(tab[i].nom+i,tab[i+1].nom+i)>0)
       {
         aux1=tab[i];
         tab[i]=tab[i+1];
         tab[i+1]=aux1;
         ok=1;
       }
     }
       }
}

1 réponse

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Bonjour,

    char nom[ligne][colone];
    Pourquoi un tableau à deux dimensions ? Une seule suffit pour une chaîne de caractères.

    scanf("%s",&individu[i].nom);
    Pas de & devant le pointeur.

    if(strcmp(tab[i].nom+i,tab[i+1].nom+i)>0)
    Que veux tu faire avec "+i" ?

    Merci d'utiliser la balise "code c" pour la prochaine fois.
    Exemple :
    <code c>ici tu mets ton code</code>
    0
    1. sambio Messages postés 6 Statut Membre
       
      ça ne marche pas lorsque j'enlève le "&"
      0
    2. sambio Messages postés 6 Statut Membre
       
      le tableau à deux dimensions me permet de saisir et de trier facilement
      0
    3. sambio Messages postés 6 Statut Membre
       
      le tableau à deux dimensions me permet de saisir et de trier facilement
      
          
      0
    4. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Normal que ça ne marche pas puisque la variable "nom" n'est pas une chaîne de caractère mais un tableau à deux dimensions...
      Je ne suis pas convaincu par ton explication de saisir et de trier.
      Tu crées une structure Eleve qui a un nom. Un élève a un seul nom, pas plusieurs.
      Donc, je mettrais plutôt : char nom[TAILLE]; avec #define TAILLE 250
      Et là, il faut enlever le &.

      Si tu veux un tableau qui contient tous les noms, créé une autre variable mais pas dans la structure.
      0
    5. sambio Messages postés 6 Statut Membre > fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention  
       
      je l'ai fait mais dans ma fonction tri_nom ma boucle tourne qu'une seule fois
      0