Structure et tri en langage C

Fermé
netglobe Messages postés 2 Date d'inscription lundi 19 novembre 2007 Statut Membre Dernière intervention 16 janvier 2008 - 14 janv. 2008 à 21:05
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 - 16 janv. 2008 à 19:29
Bonjour,
j'en ai un exercice que je n'arrive pas à résoudre ,j'aimerai bien que quelqu'un m'aider.
merci d'avance.
exercice:(langage C)

dans une fédération du sport collectif chaque équipe est défini par :
son nom (max 34 caractéres)
sa date de fondation(jj/mm/aaaa)
nombre de joueur
chaque équipe est formé de 25 joueurs
nbr de but marqué
chaque joueur est défini par:
son nom (max 30 caractéres)
son age
questions:
saisir les données corespendants au différent équipes
afficher le nom des joueurs ainsi le nom d' équipe qui ont marqué plus de 10 buts
classer tous les équipes dans l'ordre croissant suivant le nbr de but marqué
écrire le programme en langage C.

N.B:
le nbr de buts marqué de chaque joueur est la somme de buts marqué au nom de l'équipe

j'ai commencé à écrire ce code et je suis bloqué dans le reste.

#include<stdio.h>
#include<conio.h>

struct date
{
int jour;
int mois;
int annee;
};

struct joueur
{
char nom[30];
int age;
int nbr_but_marque;
};


struct equipe
{
char nom[34];
date date_fondation;
joueur j[25];

};


ET Merci.
A voir également:

3 réponses

netglobe Messages postés 2 Date d'inscription lundi 19 novembre 2007 Statut Membre Dernière intervention 16 janvier 2008 1
16 janv. 2008 à 10:35
j'ai avancé dans l'exercice mais je veux bien quelqu'un qui m'aide à le finir.

ET Merci.


#include<stdio.h>
#include<conio.h>

struct date
{
int jour;
int mois;
int annee;
};

struct joueur
{
char nom[30];
int age;
int nbr_but_marque;
};


struct equipe
{
char nom[34];
date date_fondation;
joueur j[25];
};

void saisie_equipe()
{
equipe e[10];
int i,k,n,m;
printf("\n entrer le nbr d'equipe:");
scanf("\n%d",&n);
for(i=0;i<n;i++)
{
printf("\n donner le nom de l'equipe:");
scanf("\n%s",&e[i].nom);
printf("\n donner la date de fondation de l'equipe:");
printf("\n donner le jour de fondation:");
scanf("\n%d",&e[i].date_fondation.jour);
printf("\n donner le mois de fondation:");
scanf("\n%d",&e[i].date_fondation.mois);
printf("\n donner l'année de fondation:");
scanf("\n%d",&e[i].date_fondation.annee);
printf("\n donner le nbr de joueur:");
scanf("\n%d",&m);
for(k=0;k<m;k++)
{
printf("\n donner le nom du joueur:");
scanf("\n%s",&e[i].j[k].nom);
printf("\n donner l'age de joueur:");
scanf("\n%d",&e[i].j[k].age);
printf("\n donner le nbr de but marque:");
scanf("\n%d",&e[i].j[k].nbr_but_marque);
}
}

}
1
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
15 janv. 2008 à 04:36
pour rentré les donnees je pense que tu es capable de faire ça...

pour afficher le nom des joueurs qui ont marqué plus de dix buts et celui de leur equipe
for(i=0;i<15;i++)
if(equipe.j[i].nbr_but_marque > 10)
printf("%s qui joue a %s a marque plus de 10 buts",equipe.j[i].nom,equipe.nom);
pour afficher le classement des equipes suivant le nbr de but marqué
tu pourrais creer un tableau et y metre toutes les equipes puis tu calcules le nrb de but marque par chaque equipe en additionnant les buts marque par chaque joueur de l'equipe puis tu fais un tri pour les classer ensuite...

bonne chance ;)
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
16 janv. 2008 à 19:29
rajoute ça (sans oublier de faire les declaration) et ça devrait marché...
for(i=0;i<n;i++)
    for(j=0;j<m;j++)
        if(e[i].j[j].nbr_but_marque > 10)
            printf("%s qui joue a %s a marque plus de 10 buts il en a marque %d\n",e[i].j[j].nom,e[i].nom,e[i].j[j].nbr_but_marque);

for(i=0;i<n;i++)
    for(j=0;j<m;j++)
        but_eq[i]+=e[i].j[j].nbr_but_marque;

for(i=0;i<n-1;i++)
    for(j=i+1;j<n;j++)
        if(but_eq[i] < but_eq[j])
        {
            temp=e[i];
            e[i]=e[j];
            e[j]=temp;
            temp2=but_eq[i];
            but_eq[i]=but_eq[j];
            but_eq[j]=temp2;
        }
        
printf("\n----Classement----\n");
for(i=0;i<n;i++)
    printf("%d- %s  %d but\n",i+1,e[i].nom,but_eq[i]);
bonne chance ;)
0