>Boujour à tous je suis nouveau sur Hardware
>Je suis entrain de faire un programme C qui creer un arbre genealogique a partir d'un ficchier texte.
>Je dois faire une fonction ref_personne(prenom, nom) qui doit retourner la référence de la personne de nom nom et de prenom prenom. J'ai une erreur dans ma fonction.
>Voila des extrait de mon programme qui vous serons utiles pour me répondre.
/* Structure de type personne "PERSONNE" */
typedef struct personne PERSONNE;
struct personne
{
char nom[15];
char prenom[15];
char S;
struct
{
int jour;
int mois;
int annee;
}date_naissance;
PERSONNE * pere;
PERSONNE * mere;
};
/* Structure de type element "ELEMENT" */
typedef struct element ELEMENT;
struct element
{
PERSONNE * personne;
ELEMENT * suivant;
};
/* Structure de type ensemble "ENSEMBLE" */
typedef struct ensemble ENSEMBLE;
struct ensemble
{
ELEMENT * premier;
};
>Et voici ma fonction ref_personne[i]
/* Reference d'une personne */
PERSONNE ref_personne(char *nom, char* prenom)
{
ELEMENT * tmp;
PERSONNE * resultat;
tmp = ENSEMBLE -> premier; /*expected primary-expression before '->' token
int trouve = 0;
while (tmp != NULL && !trouve)
{
if ((strcmp(tmp->personne->nom, nom)==0) && (strcmp(tmp->personne->prenom, prenom)==0))
{
trouve = 1;
resultat = tmp->personne;
}
tmp = tmp->suivant;
}
return tmp;
}
tmp doit parcourir ma chaine pour verifier si c'est le bon mon et prenom, or mon erreur si situe au debut (erreur en commentaire) ou je veux metre tmp au debut de ma liste.
>J'espere vous avoir fourni assez d'éléments pour me répondre sinon j'attends vos remarques. Merci d'avance.
Cordialement Liv.