[C] Problème Listes chainées Structure conten
Fermé
loco_info
-
16 mai 2007 à 23:46
Al_25 Messages postés 9 Date d'inscription dimanche 6 mai 2007 Statut Membre Dernière intervention 17 mai 2007 - 17 mai 2007 à 16:36
Al_25 Messages postés 9 Date d'inscription dimanche 6 mai 2007 Statut Membre Dernière intervention 17 mai 2007 - 17 mai 2007 à 16:36
A voir également:
- [C] Problème Listes chainées Structure conten
- Logiciel calcul structure bois gratuit - Télécharger - Architecture & Déco
- Structure d'un rapport de stage - Guide
- Listes déroulantes en cascade excel - Guide
- Faire des listes déroulantes excel - Guide
- Problème liste de diffusion whatsapp - Guide
6 réponses
Al_25
Messages postés
9
Date d'inscription
dimanche 6 mai 2007
Statut
Membre
Dernière intervention
17 mai 2007
1
16 mai 2007 à 23:57
16 mai 2007 à 23:57
POur moi la seul chose qui reste à faire c'est :
*nouveau->next=NULL;
return nouveau;
}
et c'est tous bon!
PS:je viens de voir un truc : il me semble que *nouveau->next ça ne marche pas,soit tu fais *nouveau.next soit nouveau->next mais c'est a verifier...
*nouveau->next=NULL;
return nouveau;
}
et c'est tous bon!
PS:je viens de voir un truc : il me semble que *nouveau->next ça ne marche pas,soit tu fais *nouveau.next soit nouveau->next mais c'est a verifier...
merci mon frère mais il reste de creer une liste des eleve et une liste de profs et les mettre dans une classe et cette dernière dans un école!!
le problème de créer une liste de classe et chaque classe a son nom et sa liste des eleves et liste des profs
gets(nouveau->Nom);
*nouveau->ListeEleve=Creer_Eleve();
*nouveau->ListeProf=Creer_Prof();
ça marche pas après la compilation
et je veux une solution de création des classes des ecoles (ce n'est pas les classes d'orienté objet)
gets(nouveau->Nom);
*nouveau->ListeEleve=Creer_Eleve();
*nouveau->ListeProf=Creer_Prof();
ça marche pas après la compilation
et je veux une solution de création des classes des ecoles (ce n'est pas les classes d'orienté objet)
Al_25
Messages postés
9
Date d'inscription
dimanche 6 mai 2007
Statut
Membre
Dernière intervention
17 mai 2007
1
17 mai 2007 à 11:09
17 mai 2007 à 11:09
Vu que creer_eleve et creer prof te renvoi un pointeur vers un eleve ou un prof,tu n'as qu'a les appeler n fois puis les lier les un aux autres tous en gardant un pointeur vers le premier element de ta liste que tu mettras dans nouveau->ListeEleve
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
voila merci pour tous, mais encore des problèmes (c'est la vie hahaha)
j'ai réorganiser le code, et j'ai créé une fonction qui créer liste des eleves et une autre créer liste des profs.
aprés l'execution tout ça marche bien mais quand la liste des classe arrive à pointer sur la liste des eleves crées ça bloqué et doit fermer.
voici le code modifié:
j'ai réorganiser le code, et j'ai créé une fonction qui créer liste des eleves et une autre créer liste des profs.
aprés l'execution tout ça marche bien mais quand la liste des classe arrive à pointer sur la liste des eleves crées ça bloqué et doit fermer.
voici le code modifié:
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <windows.h> // Structure pour renseignements sur les eleves typedef struct ListeEleves { char Nom[20]; char Prenom[20]; char Sexe[1]; float Notes[4]; float Moyenne; struct ListeEleves *next; }ListeEleves; typedef struct ListeEleves *Eleve_l; // Structure pour renseignements sur les profs typedef struct ListeProfs { char Nom[20]; char Prenom[20]; char Module[20]; char Sexe[1]; struct ListeProfs *next; }ListeProfs; typedef struct ListeProfs *Prof_l; // Structure pour renseignements sur les classes typedef struct ListeClasses { char Nom[20]; Eleve_l *ListeEleve; Prof_l *ListeProf; struct ListeClasses *next; }ListeClasses; typedef struct ListeClasses *Classe_l; // Structure pour les renseignements d'une ecole typedef struct Ecoles { char R_Sociale[20]; int Nb_Classes; int Nb_Prof; int Nb_Eleves; struct Classe_l *ListeClasse; }Ecoles; typedef struct Ecoles *Ecole; Eleve_l Creer_Eleve() { int rep, i=0, Somme=0; Eleve_l E=NULL, nouveau; do { nouveau=(Eleve_l)malloc(sizeof(ListeEleves)); printf("\n\n\n"); puts(" ***Les informations d'eleve***"); puts("==>Nom: ");fflush(stdin); gets(nouveau->Nom); puts("==>Prenom: ");fflush(stdin); gets(nouveau->Prenom); puts("==>Sexe (f ou m): ");fflush(stdin); gets(nouveau->Sexe); for(i=0;i<4;i++) {printf("==>Note %d: ", i+1); scanf("%f",&nouveau->Notes[i]); Somme+=Somme;} nouveau->Moyenne=Somme/4; nouveau->next=E; E=nouveau; printf("Voulez-vous ajouter un autre eleve? (0 sinon)"); scanf("%d",&rep); } while (rep!=0); return E; } Prof_l Creer_Prof() { int rep; Prof_l P=NULL, nouveau; do { nouveau=(Prof_l)malloc(sizeof(ListeProfs)); printf("\n\n\n"); puts(" ***Les informations de prof***"); puts("==>Nom: ");fflush(stdin); gets(nouveau->Nom); puts("==>Prenom: ");fflush(stdin); gets(nouveau->Prenom); puts("==>Sexe (f ou m): ");fflush(stdin); gets(nouveau->Sexe); puts("==>Module: ");fflush(stdin); gets(nouveau->Module); nouveau->next=P; P=nouveau; printf("Voulez-vous ajouter un autre prof? (0 sinon)"); scanf("%d",&rep); } while (rep!=0); return P; } Classe_l Creer_Classe() { Classe_l C=NULL, nouveau; nouveau=(Classe_l)malloc(sizeof(ListeClasses)); printf("\n\n\n"); puts(" ***Les informations de classe***"); puts("==>Nom de la Classe: ");fflush(stdin); gets(nouveau->Nom); *nouveau->ListeEleve=Creer_Eleve();fflush(stdin); *nouveau->ListeProf=Creer_Prof(); nouveau->next=C; C=nouveau; return C; } int main() { Classe_l BM=NULL; BM=Creer_Classe(); getchar(); return 0; }
Al_25
Messages postés
9
Date d'inscription
dimanche 6 mai 2007
Statut
Membre
Dernière intervention
17 mai 2007
1
17 mai 2007 à 16:36
17 mai 2007 à 16:36
Es tu sur que :
*nouveau->ListeEleve=Creer_Eleve();fflush(stdin);
*nouveau->ListeProf=Creer_Prof();
est correct?
il me semble qu'il faut enlever les * et mettre juste :
nouveau->ListeEleve=Creer_Eleve();fflush(stdin);
nouveau->ListeProf=Creer_Prof();
*nouveau->ListeEleve=Creer_Eleve();fflush(stdin);
*nouveau->ListeProf=Creer_Prof();
est correct?
il me semble qu'il faut enlever les * et mettre juste :
nouveau->ListeEleve=Creer_Eleve();fflush(stdin);
nouveau->ListeProf=Creer_Prof();