Recherche un algo de tri pour mon programme
Résolu
akybienvenu
Messages postés
48
Date d'inscription
Statut
Membre
Dernière intervention
-
akybienvenu Messages postés 48 Date d'inscription Statut Membre Dernière intervention -
akybienvenu Messages postés 48 Date d'inscription Statut Membre Dernière intervention -
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
- Logiciel tri photo - Guide
- Programme demarrage windows - 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.
typedef struct
{
double moygenerale[MAX_ELEVES];
}Ingenieur;