Stuctures et fichiers en C

Fermé
keisha Messages postés 8 Date d'inscription samedi 4 mai 2002 Statut Membre Dernière intervention 28 juillet 2005 - 5 juin 2004 à 15:39
 elarifali - 3 mai 2005 à 19:17
Bonjour,
débutante en C,j'ai un peu de mal avec les fichiers et les structures.
Voici mon pb:g créé un fichier binaire comprenant 10 structures personne de type :nompersonne nbre1 nbre2 nbre3
j'affiche dans un tableau d'integer le résultat de pers.nbre1+pers.nbre2-pers.nbre3 Ce tableau me donne la position réelle des personnes dans le fichier
ex:
DUPONT 11 0 4
ds le fic de départ il est 1er mais sa place réelle est 7
GENARD 10 5 14 en 2 mais place réelle 1
DRESSERT 5 5 8 en 3 mais place réelle 2
etc
Comment faire pour afficher les noms à leur place réelle
Merci de me répondre assez vite
A voir également:

5 réponses

Ravachol Messages postés 566 Date d'inscription vendredi 5 mars 2004 Statut Membre Dernière intervention 30 octobre 2005 120
5 juin 2004 à 22:19
Salut,
si j'ai bien compris ce que tu voulais faire, ça peux ce coder comme cela


struct personne
{
char nom[21];
int nbr1;
int nbr2;
int nbr3;
};


// Fonction de comparaison qui sera utilisée par qsort
int cmpStruct(const void *st1, const void *st2)
{
//Cast des pointeurs void passs en argument en des pointeurs type structure personne
struct personne *stl1 = (struct personne *)st1;
struct personne *stl2 = (struct personne *)st2;

// Ton calcule de la position si tu veux un ordre croissant
return (stl2->nbr1+stl2->nbr2-stl2->nbr3)-(stl1->nbr1+stl1->nbr2-stl1->nbr3);
// Ton calcule de la position si tu veux un ordre décroissant
//return (stl1->nbr1+stl1->nbr2-stl1->nbr3)-(stl2->nbr1+stl2->nbr2-stl2->nbr3);
}


void main(int argc, char *argv[])
{
int nbElTab;
int tailleEl;
//Déclaration d'un tableau de 3 structures
struct personne pers[3];
//==================================================================
//Parce que j'ai eu la flème d'écrire et de lire dans un fichier ;-)
strcpy(pers[0].nom,"DUPONT");
pers[0].nbr1 = 11;
pers[0].nbr2 = 0;
pers[0].nbr3 = 4;
strcpy(pers[1].nom,"GENARD");
pers[1].nbr1 = 10;
pers[1].nbr2 = 5;
pers[1].nbr3 = 14;
strcpy(pers[2].nom,"DRESSERT");
pers[2].nbr1 = 5;
pers[2].nbr2 = 5;
pers[2].nbr3 = 8;
//==================================================================

//Affichage des noms de personne avant le triage
printf("Avant triage\n%s -- %s -- %s\n",pers[0].nom,pers[1].nom,pers[2].nom);
//Calcule de la taille d'un elément personne
tailleEl = sizeof(struct personne);
//Calcule du nombre d'élément personne dans le tableau
nbElTab = sizeof(pers)/tailleEl;
//Appel de la fonction de triage. Pour les détails de qsort regarde dans l'aide de ton compilo
qsort(pers,nbElTab,tailleEl,cmpStruct);
//Affichage des noms de personne après le triage
printf("Après triage\n%s -- %s -- %s\n",pers[0].nom,pers[1].nom,pers[2].nom);
}

A++

Ni l'ignorance n'est défaut d'esprit,
ni le savoir n'est preuve de génie. LUC DE CLAPIERS
0
s'il vous plait que quelqu'un m'aide je veux:
faire un programme qui distribue les eleves d'une classe aleatoirement dans les salles de controle
1-le probleme consiste a savoir le nombre de classe a distribuer
2-ouvrir un fichier texte qui represente la liste des noms des eleves de la classe et le placer dans une salle de controle en prenant en consideration le nombre de salle de controle, le nombre de place dans chaque salle les eloignements par ligne et par colonne des eleves d'un meme semestre et des semestres differents(sachant que ces eloignements sont fournis par l'utilisateur)
3-afficher la distibution finale dans un fichier texte

merci d'avance
0
Reeter Messages postés 120 Date d'inscription mercredi 13 août 2003 Statut Membre Dernière intervention 6 décembre 2005
25 févr. 2005 à 11:56
C'est quoi ta question? tu veux un logiciel tout fait?
0
je veux un prgramme écrit en c d'un annuaire téléfonique qui peut consulter,modifier,ajouter,supprimer et rechercher les abonnés ayant quelque donné en utilisant la notion du fichier
0
Ravachol Messages postés 566 Date d'inscription vendredi 5 mars 2004 Statut Membre Dernière intervention 30 octobre 2005 120 > maher
24 mars 2005 à 17:28
Salut vieux,

C'est pas urgent au moins ?
T'as le temps de passer par là ?
http://www.commentcamarche.net/ccmguide/ccmcharte.php3

Y'a vraiment pas de quoi.
0
malheuresement Reeter oui c'est un projet donner par le docteur et aucun de nous ne sais manipuler C comme il faut si vous savez comment svp envoyer le a mon email
0
Reeter Messages postés 120 Date d'inscription mercredi 13 août 2003 Statut Membre Dernière intervention 6 décembre 2005
25 févr. 2005 à 17:53
Ben personnellement, ça me paraît un peu long à faire pendant mes heures de boulot.... Je laisse donc ce plaisir à un autre qui serait plus motivé que moi pour prendre du temps à le faire...
0
Reeter tu connais comment le faire? et bon tu peut me donner un algorithme du moins que je sacherai comment commencé?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rechere
0