cs_mikak
Messages postés6Date d'inscriptiondimanche 19 mars 2006StatutMembreDernière intervention 6 mai 2010
-
25 mai 2006 à 14:29
cs_darunia
Messages postés354Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention24 mars 2011
-
26 mai 2006 à 15:45
J'ai un probleme avec le MALLOC de ce programme,aidez moia trouver une soltion pour qu'on puisse lister par ordre alphabétique
void trie_affiche()
{ int nbre_etudiant,i=0,j,k;
char *ci,*cj;
etudiant *e,ed;
clrscr();
printf("\n\n ========== TRI ALPHABETIQUE DES ETUDIANTS =============");
if(!fichier)
{ printf("\n\n\nPr‚cisez d'abord un fichier!");
printf("\n\n\n\nTapez une touche pour revenir au menu principal");
getch();
return;
}
fseek(fichier,0,2);
nbre_etudiant=ftell(fichier)/sizeof(etudiant);
if(nbre_etudiant>eff)
{
printf("\n\n\nCe fichier contient un nombre d'etudiant superieur a \nl'effectif saisi dans le planning !!!");
printf("\nChoisissez un autre fichier ou redonnez l'effectif!");
printf("\n\n\nAppuyez sur une touche pour revenir au Menu principal.");
getch();
return;
}
// fseek(fichier,0,2);
// nb_e=ftell(fichier)/sizeof(etudiant);
e=(etudiant*)malloc(nbre_etudiant*sizeof(etudiant));
rewind(fichier);
while(i<nbre_etudiant)
{ fread(&e[i],sizeof(etudiant),1,fichier);
i++;
}
for(i=0;i<nbre_etudiant;i++)
for(j=i+1;j<nbre_etudiant;j++)
{ strcpy(ci,e[i].nom);
strcat(ci,e[i].prenom); /// C'EST A CE NIVEAU OU IL Y A PROBLEME
strcpy(cj,e[j].nom);
strcat(cj,e[j].prenom);
if(strcmpi(ci,cj)>0)
{ copie(&ed,e[i]);
copie(&e[i],e[j]);
copie(&e[j],ed);
}
}
j=0; k=1;
for(i=0;i<nbre_etudiant;i++)
{ if(j<nbs_u)
{ if(k==1)
{ printf("\n\n\n\tLes etudiants qui vont passer l'examen à la salle nø%d sont:\n",s[j].numsal);
printf("\n\tNø\tCNE\t\tNom\t\tPrenom\n");
}
if(k<s[j].capsal)
{ printf("\n\t%d\t%s\t\t%s\t\t%s",i+1,e[i].cne,e[i].nom,e[i].prenom);
k++;
}
else
{ printf("\n\t%d\t%s\t\t%s\t\t%s",i+1,e[i].cne,e[i].nom,e[i].prenom);
k=1;
j++;
printf("\nÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ");
}
}
else
{ printf("\n-------- on a depassé le nombre de salles utilis‚es -------\n");
return;
}
}
flushall();
printf("\n\n Appuyer sur une touche pour retourner au menu principal");
getch();
}
//fonction permettant de copier un champ d'etudiants dans un autre
void copie(etudiant *e1,etudiant e2)
{ strcpy(e1->nom,e2.nom);
strcpy(e1->prenom,e2.prenom);
strcpy(e1->cne,e2.cne);
}