1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
void inscrire(char nomlu[],DOSS ** spD, NAT ** spN, int *nbitot, int *numdoss)
{
int rep;
DOSS ** cherchenom (char [],DOSS **,int *);
NAT * inscrirenat(char [],NAT **);
DOSS * pnouv;
NAT * pn;
spD = cherchenom (nomlu,spD,&rep);
if (rep==1)
{
printf("Participant déjà inscrit\n");
return;
}
*nbitot++;
pnouv=(DOSS*)malloc (sizeof(DOSS));
pnouv->nom = strdup (nomlu);
*numdoss++;
pnouv->ndoss=*numdoss;
pnouv->psD= *spD;
*spD=pnouv;
printf("Veuillez inscrire la nationalité\n");
fflush(stdin);
char zl[51];
gets (zl); //lecture de la nationalité
pn = inscrirenat (zl,spN);
pnouv->pnat = pn;
}
DOSS ** cherchenom (char nomlu[],DOSS ** spD, int *rep)
{
int comp=1;
for (;*spD && (comp = strcmp (nomlu,*spD->nom))>0;spD = &(*spD->psD));
if (comp==0) *rep=1; //Nom trouvé
else *rep=0;
return (spD);
}
NAT * inscrirenat (char zl[], NAT ** spN)
{
NAT * pn;
int comp=1;
for (;*spN && (comp = strcmp (zl,*spN->nat))>0;spN = &(*spN->psN));
if (comp==0)
{
pn = *spN;
pn->nbi++;
return(pn);
}
pn = (NAT*) malloc (sizeof(NAT));
pn->nat = strdup(zl);
pn->nbi = 1;
pn->tpst = -1;
pn->psN = *spN;
*spN = pn;
printf("%-51s Nouvelle NATIONALITE\n",zl);
return (pn);
} |
Partager