bonsoir a tous je crée cette discution autour du sujet suivant:
on se propose d'ecrire un programme pour gerer les notes de langage C a l'aide d'une liste chainée.
a) definir un type ELEVE caractérisé par un note et son nom(le type doit pouvoir permettre egalement de gerer une liste chainée)
b)Ecrire une fonction qui saisit un eleve:
ELEVE Creer(char *nom,float note)
c)ecrire une fonction qui ajoute un eleve a une liste d'eleves
ELEVE ajouter(ELEVE *liste, ELEVE nouveau)
d)ecrire une fonction qui affiche le contenu de la liste
void afficher(ELEVE* liste)
e)ecrire une fonction qui retourne la moyenne des notes contenues dans une liste d'eleve
float moyenne(ELEVE* liste)
voici ce que j'ai fait:
a)
1 2 3 4 5 6 7
| typedef struct eleve
{
char* nom;
float note;
struct eleve *s;
struct eleve *p;
}ELEVE; |
b)
1 2 3 4 5 6 7 8
| ELEVE Creer( char* nom , float note )
{
ELEVE *e=(ELEVE*) malloc(1*sizeof(ELEVE));
strcpy(e->nom,nom); // on recopie son nom et sa note
e->note=note;
//on ne s'occupe pas des pointeurs suivants et precedents pour le moment
return *e; //on retourne l'objet lui meme et non son adresse
} |
c)
1 2 3 4 5 6 7 8 9 10 11
| ELEVE* Ajouter(ELEVE *tete,ELEVE nouveau)
{
nouveau.s=tete;
nouveau.p=NULL;
if (tete != NULL)
{
tete->p = &nouveau;
nouveau.p=NULL;
}
return &nouveau;
} |
d)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| void Afficher(ELEVE *tete)
{
if (tete != NULL)
{
while(tete != NULL)
{
printf("Nom de l'eleve: %s\n" , tete->nom);
printf("Note de l'eleve: %d\n\n" , tete->note);
tete=tete->s;
}
}
else printf("la liste d'eleves est vide\n");
system("pause");
} |
pour la question e) on verra plus tard....
mais pour le moment la fonction Creer ne marche pas, pourtant
je l'ai testé seule avec le main ci dessous
1 2 3 4 5 6 7 8 9
| int main(void)
{
ELEVE *nouveau;
nouveau = &Creer("name",10);
printf("nom : %s\n",nouveau->nom);
printf("note : %f\n",nouveau->note);
system("pause");
return 0;
} |
malgré le system("pause") la fenetre se ferme avant ke je n'ai pu voir si tout est ok...
quelqu'un aurait il la solution a mon pb?
Partager