Rechercher : dans
Par :

Structure et tri en langage C

Dernière réponse le 16 jan 2008 à 19:29:23 netglobe, le 14 jan 2008 à 21:05:16 
 Signaler ce message aux modérateurs

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.

Configuration: Windows Vista
Internet Explorer 7.0

Meilleures réponses pour « structure et tri en langage C » dans :
Les structures en langage C Voir Différence entre une structure et un tableau Un tableau permet de regrouper des éléments de même type, c'est-à-dire codés sur le même nombre de bits et de la même façon. Toutefois, il est généralement utile de pouvoir rassembler des éléments de...
Les piles en langage C VoirLes piles Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la pile IV. Opérations sur les piles A. Initialisation B. Insertion d'un élément dans la pile C. Ôter un élément de la pile D. Affichage...
Les structures en langage C++ VoirDifférence entre une structure et un tableau Un tableau permet de regrouper des éléments de même type, c'est-à-dire codés sur le même nombre de bits et de la même façon. Toutefois, il est généralement utile de pouvoir rassembler des éléments de...
Langage C - Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle ? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non. Ces structures conditionnelles peuvent être associées à des structures qui se répètent...

1

mype, le 15 jan 2008 à 04:36:16

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 ;)

Répondre à mype

2

netglobe, le 16 jan 2008 à 10:35:11
  • +1

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);
}
}

}

Répondre à netglobe

3

 mype, le 16 jan 2008 à 19:29:23

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 ;)

Répondre à mype