Probleme de tri en langage c
Fermé
olbi
-
12 juin 2004 à 19:35
Ravachol Messages postés 566 Date d'inscription vendredi 5 mars 2004 Statut Membre Dernière intervention 30 octobre 2005 - 13 juin 2004 à 10:30
Ravachol Messages postés 566 Date d'inscription vendredi 5 mars 2004 Statut Membre Dernière intervention 30 octobre 2005 - 13 juin 2004 à 10:30
A voir également:
- Probleme de tri en langage c
- Langage ascii - Guide
- Tri excel - Guide
- Langage binaire - Guide
- Logiciel de tri de photos - Guide
- Pascal langage - Télécharger - Édition & Programmation
3 réponses
tafiscobar
Messages postés
1277
Date d'inscription
jeudi 7 décembre 2000
Statut
Contributeur
Dernière intervention
26 février 2009
177
13 juin 2004 à 00:19
13 juin 2004 à 00:19
salut, c'est scanf ("%s", nom[i]); //nom[i] est deja considéré coe pointeur.
tafiscobar "lou waye def bopame"
la nullite n'existe pas, l'ignorance oui, ah je suppose!!!
tafiscobar "lou waye def bopame"
la nullite n'existe pas, l'ignorance oui, ah je suppose!!!
Ravachol
Messages postés
566
Date d'inscription
vendredi 5 mars 2004
Statut
Membre
Dernière intervention
30 octobre 2005
120
13 juin 2004 à 01:08
13 juin 2004 à 01:08
Salut,
Il fallait effectivement passer une adresse d'adresse à la fonction de tri.
Ceci fonctionne chez moi. Pas testé à fond, plus trop les yeux en face des trous =>il traine peut-être des couillettes.
#include<stdio.h>
#include<string.h>
void main()
{
char *nom[5]; // Modif
int i,j;
void tri(char **) ; // Modif
for (i=0;i<5;i++)
{
nom[i] = malloc(10*sizeof(char)); // Modif
scanf("%s",nom[i]);
printf("nom %d : %s\n",i+1,nom[i]);
}
tri(&(nom[0])); // Modif
printf("\nApres la fonction\n");
for(i=0;i<5;i++)
{printf("nom %d : %s\n",i+1,nom[i]);
}
for (i=0;i<5;i++) free(nom[i]); // Modif
}
void tri(char *nom[]) // Modif
{ int i,j;
char temp[10];
for(i=0;i<4;i++)
{ for (j=i+1;j<5;j++)
{ if(strcmp(nom[i],nom[j]) < 0)
{ strcpy(temp,nom[i]);
strcpy(nom[i],nom[j]);
strcpy(nom[j],temp);
}
}
}
}
A++
Ni l'ignorance n'est défaut d'esprit,
ni le savoir n'est preuve de génie. LUC DE CLAPIERS
Il fallait effectivement passer une adresse d'adresse à la fonction de tri.
Ceci fonctionne chez moi. Pas testé à fond, plus trop les yeux en face des trous =>il traine peut-être des couillettes.
#include<stdio.h>
#include<string.h>
void main()
{
char *nom[5]; // Modif
int i,j;
void tri(char **) ; // Modif
for (i=0;i<5;i++)
{
nom[i] = malloc(10*sizeof(char)); // Modif
scanf("%s",nom[i]);
printf("nom %d : %s\n",i+1,nom[i]);
}
tri(&(nom[0])); // Modif
printf("\nApres la fonction\n");
for(i=0;i<5;i++)
{printf("nom %d : %s\n",i+1,nom[i]);
}
for (i=0;i<5;i++) free(nom[i]); // Modif
}
void tri(char *nom[]) // Modif
{ int i,j;
char temp[10];
for(i=0;i<4;i++)
{ for (j=i+1;j<5;j++)
{ if(strcmp(nom[i],nom[j]) < 0)
{ strcpy(temp,nom[i]);
strcpy(nom[i],nom[j]);
strcpy(nom[j],temp);
}
}
}
}
A++
Ni l'ignorance n'est défaut d'esprit,
ni le savoir n'est preuve de génie. LUC DE CLAPIERS
Un grand merci!!!!!!
Ravachol
Messages postés
566
Date d'inscription
vendredi 5 mars 2004
Statut
Membre
Dernière intervention
30 octobre 2005
120
13 juin 2004 à 10:30
13 juin 2004 à 10:30
Salut,
de rien.
A++
Ni l'ignorance n'est défaut d'esprit,
ni le savoir n'est preuve de génie. LUC DE CLAPIERS
de rien.
A++
Ni l'ignorance n'est défaut d'esprit,
ni le savoir n'est preuve de génie. LUC DE CLAPIERS