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
elarifali - 3 mai 2005 à 19:17
A voir également:
- Stuctures et fichiers en C
- Renommer plusieurs fichiers en même temps - Guide
- Wetransfer gratuit fichiers lourd - Guide
- Explorateur de fichiers - Guide
- Fichiers bin - Guide
- Fichiers epub - Guide
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
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
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
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
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
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
25 févr. 2005 à 11:56
C'est quoi ta question? tu veux un logiciel tout fait?
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
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.
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.
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
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
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...
Reeter tu connais comment le faire? et bon tu peut me donner un algorithme du moins que je sacherai comment commencé?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question