Recherche un algo de tri pour mon programme
Résolu
akybienvenu
Messages postés
53
Statut
Membre
-
akybienvenu Messages postés 53 Statut Membre -
akybienvenu Messages postés 53 Statut Membre -
bonsoir ,
dans un programme de calcul de moyennes que j'ai écris a la fin de mon programme la moyenne de chaque étudiant est dans un tableau que j'ai déclarer dans mon typesdef, pour le terminer je recherche un algo qui me permettrait que classer ces étudiant selon leur moyenne obtenue dans ingenieur[index].moygenerale[j]
voici ma fonction qui calcul les moyennes
dans un programme de calcul de moyennes que j'ai écris a la fin de mon programme la moyenne de chaque étudiant est dans un tableau que j'ai déclarer dans mon typesdef, pour le terminer je recherche un algo qui me permettrait que classer ces étudiant selon leur moyenne obtenue dans ingenieur[index].moygenerale[j]
voici ma fonction qui calcul les moyennes
void calculMoyenne_Ingenieur(Ingenieur ingenieur[], unsigned int index , unsigned int nb_moyennes)
{
int j;
for(j=0;j<nb_moyennes;j++)
{
ingenieur[index].moygenerale[j]=(ingenieur[index].moyenne_avec_coefficient/ingenieur[index].TotalDesCoefficient);
}
}
void calculMoyenne(Ingenieur ingenieur[], unsigned int nb_ingenieurs, unsigned int nb_moyennes)
{ int i;
for(i=0;i<nb_ingenieurs;i++)
{
calculMoyenne_Ingenieur(ingenieur,i,nb_moyennes);
}
}
void afficheMoyenne_Ingenieur(Ingenieur ingenieur[], unsigned int index , unsigned int nb_moyennes)
{
int j;
for(j=0;j<Ingenieur_Moyenne_Generele;j++)
{
printf( "La moyenne de : \n" );
printf("%s est = ",ingenieur[index].nom);
printf("\n\n");
printf(" \n");
printf(" ...................................... \n");
printf(" est %f \n",ingenieur[index].moygenerale[j]
);
printf(" ...................................... \n");
}
}
void afficheMoyenne(Ingenieur ingenieur[], unsigned int nb_ingenieurs, unsigned int nb_moyennes)
{
int i;
for(i=0;i<nb_ingenieurs;i++)
{
afficheMoyenne_Ingenieur(ingenieur,i,nb_moyennes);
}
}
A voir également:
- Recherche un algo de tri pour mon programme
- Comment faire un tri personnalisé sur excel - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Programme demarrage windows - Guide
- Logiciel tri photo - Guide
- Mettre en veille un programme - Guide
4 réponses
Bonjour,
Il existe de nombreux algorithmes de tri, pour un nombre raisonnable d'ingénieurs, un tri par insertion est suffisant.
Le problème est que dans ton exemple chaque ingenieur a plusieurs moygenerale qui sont dans un tableau, alors sur laquelle trier?
Il existe de nombreux algorithmes de tri, pour un nombre raisonnable d'ingénieurs, un tri par insertion est suffisant.
Le problème est que dans ton exemple chaque ingenieur a plusieurs moygenerale qui sont dans un tableau, alors sur laquelle trier?
Salut akybienvenu,
La bibliothèque standard du C dispose de qsort.
http://www.cplusplus.com/reference/cstdlib/qsort/
Dal
La bibliothèque standard du C dispose de qsort.
http://www.cplusplus.com/reference/cstdlib/qsort/
Dal
bonjour, merci j'ai pu trouver un programme me permettant de faire mes tri . qui permet aussi de gérer mon classement.
void enrgMoyennes(Ingenieur ingenieur[],double table[], unsigned int nb_ingenieurs)
{
size_t i;
for(i = 0; i < nb_ingenieurs; i++)
{
table[i]=ingenieur[i].moygenerale;
}
}
void echanger(double table[], size_t i)
{ size_t tmp;
tmp = table[i];
table[i] = table[i+1];
table[i+1] = tmp;
}
void trierMoyennes(double table[], unsigned int nb_ingenieurs)
{
size_t i, j;
for( i=0;i<nb_ingenieurs-1;i++)
{
for( j=0;j<nb_ingenieurs;j++)
{
if(table[i]<table[i+1])
{
echanger(table,i);
}
}
}
}
void affichetable(Ingenieur ingenieur[],double table[], unsigned int nb_ingenieurs)
{
size_t i,j;
enrgMoyennes(ingenieur,table, nb_ingenieurs);
trierMoyennes(table, nb_ingenieurs);
printf("voici le classement des ingenieurs\n\n");
for(i = 0; i < nb_ingenieurs; i++)
{
for(j = 0; j < nb_ingenieurs; j++)
{
if(table[i]==ingenieur[j].moygenerale)
{
printf("%s %f \n\n",ingenieur[j].nom,ingenieur[j].moygenerale);
}
}
}
printf("Ce programme a ete compile le %s a %s\n", __DATE__, __TIME__);
}
Un algo qui peut fonctionner, par ordre croissant.
Pour i allant de 0 à la fin de ton tableau Pour b allant de 0 à la fin de ton tableau si i -> 0 alors si tab[j]<tab[i] alors tab[i] = tab[j] fin si sinon si tab[j]<tab[i] ET tab[j]>tab[i-1]alors tab[i] = tab[j] fin si fin pour fin pourtypedef struct
{
double moygenerale[MAX_ELEVES];
}Ingenieur;