Structure tableau dynamique
saidinfo
Messages postés
10
Date d'inscription
Statut
Membre
Dernière intervention
-
saidinfo Messages postés 10 Date d'inscription Statut Membre Dernière intervention -
saidinfo Messages postés 10 Date d'inscription Statut Membre Dernière intervention -
Bonjour,svp j'ai vraiment troublé j'arrive pas a trouve le problème.Sinon,voici le programme :
Chaque équipe est caractérisé par : Le nom de l'équipe , la date de création du club . et un tableau de joueurs de taille 22.
Chaque joueur est caractérisé par: Son nom, son age , Salaire , nbr_but_marque , nbr_blessure , nbr_carte_jaune , nbr_carte_rouge , poste .
Déclarer un tableau de équipe .
NB que on ne sait jamais combien d'équipe l'utilisateur vas entrer .Alors, voici le programme:
svp aider moi si vous savez dejà !!
EDIT: Ajout de la coloration syntaxique.
Chaque équipe est caractérisé par : Le nom de l'équipe , la date de création du club . et un tableau de joueurs de taille 22.
Chaque joueur est caractérisé par: Son nom, son age , Salaire , nbr_but_marque , nbr_blessure , nbr_carte_jaune , nbr_carte_rouge , poste .
Déclarer un tableau de équipe .
NB que on ne sait jamais combien d'équipe l'utilisateur vas entrer .Alors, voici le programme:
#include <stdio.h> #include <stdlib.h> typedef struct{char nom_equipe[20];int date_creation;}equipe; typedef struct{ equipe eq;char nom[10];int salaire,age,nbr_but,nbr_blessure,nbr_jaune,nbr_rouge;}joueurs; joueurs *p[n]; void lit(joueurs *p,n){ int i,j; p=malloc(sizeof(equipe)); int n;printf("Entrer le nombre de l'equipe:\n");scanf("%d",&n); for(i=0;i<n;i++){ printf("Entrer le nom de l'equipe n°%d:\n",i+1); scanf("%s",p[i]->eq.nom_equipe); printf("Entrer la de creation:\n"); scanf("%d",&p[i].eq.date_creation); for(j=0;j<5;j++) { printf("\tEntrer le nom de la joueurs n°%d\n",j+1); scanf("%s",p[j].nom); printf("\tEntrer age:\n"); scanf("%d",&p[j].age); printf("\tEntrer le salaire:\n"); scanf("%d",&p[j].salaire); printf("\tEntrer le nombre de but:\n"); scanf("%d",&p[j].nbr_but); printf("\tEntrer de blessure:\n"); scanf("%d",&p[j].nbr_blessure); printf("\tEntrer le nombre de les cartes Jaune:\n"); scanf("%d",&p[j].nbr_jaune); printf("\tEntrer le nombre des cartes rouge:\n"); scanf("%d",&p[j].nbr_rouge); } } free(p); } int main() { joueurs *p[n]; lit(&p,n); return 0; }
svp aider moi si vous savez dejà !!
EDIT: Ajout de la coloration syntaxique.
A voir également:
- Structure tableau dynamique
- Tableau croisé dynamique - Guide
- Tableau word - Guide
- Exemple tableau croisé dynamique télécharger - Télécharger - Tableur
- Tableau ascii - Guide
- Trier un tableau excel - Guide
1 réponse
Bonjour,
joueurs *p[n];
Combien vaut n ? Comment est-il défini ? Tu ne peux pas mettre une variable. Il vaut donc mieux mettre : #define N 5
(oui j'ai mis N en majuscule, convention pour signaler qu'il s'agit d'une constante).
Les variables globales sont à proscrire (sauf cas particulier). D'autant que tu as déjà défini cette variable dans le main(). Donc à enlever tout simplement.
void lit(joueurs *p,n){
Tu as oublié de mettre : int n
La variable p n'est pas de même type que celui de la fonction (tableau de pointeur vs pointeur...). Il faut choisir.
int n;printf("Ent
Pourquoi remettre int n; ? Il est déjà en argument...
scanf("%d",&n);
Pourquoi redéfinir n ?
Si tu veux choisir la taille, il vaut mieux le faire à la déclaration de la variable joueur (dans le main()).
Note : vaut mieux le mettre à la ligne pour plus de lisibilité.
Pourquoi faire un free() à la fin ? Tu ne veux pas récupérer le contenu à l'extérieur de la fonction() ?
Je te laisse corriger ton code en fonction de ces remarques. N'hésite pas aussi à dire ce que tu souhaites que ton programme fasse, car il y a plein de points à revoir.
Note : attention à l'indentation (notamment au niveau des for())...
Cdlt,
joueurs *p[n];
Combien vaut n ? Comment est-il défini ? Tu ne peux pas mettre une variable. Il vaut donc mieux mettre : #define N 5
(oui j'ai mis N en majuscule, convention pour signaler qu'il s'agit d'une constante).
Les variables globales sont à proscrire (sauf cas particulier). D'autant que tu as déjà défini cette variable dans le main(). Donc à enlever tout simplement.
void lit(joueurs *p,n){
Tu as oublié de mettre : int n
La variable p n'est pas de même type que celui de la fonction (tableau de pointeur vs pointeur...). Il faut choisir.
int n;printf("Ent
Pourquoi remettre int n; ? Il est déjà en argument...
scanf("%d",&n);
Pourquoi redéfinir n ?
Si tu veux choisir la taille, il vaut mieux le faire à la déclaration de la variable joueur (dans le main()).
Note : vaut mieux le mettre à la ligne pour plus de lisibilité.
Pourquoi faire un free() à la fin ? Tu ne veux pas récupérer le contenu à l'extérieur de la fonction() ?
Je te laisse corriger ton code en fonction de ces remarques. N'hésite pas aussi à dire ce que tu souhaites que ton programme fasse, car il y a plein de points à revoir.
Note : attention à l'indentation (notamment au niveau des for())...
Cdlt,
voici le programme mais il reste une seul problème consacrer a la ligne 34 .
est-que tu peut m'aidez svp !!