Une programmation du club sport sportif
sigmaaaa
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai une exercice à l'école. Je suis bloqué à partir de la question 3. Vous pouvez m'aider, s'il vous plaît??
Le sujet:
On s'intéresse à la gestion des inscriptions à un club sportif. On va créer un tableau tab_insc[N][P] avec N: le numéro d'étudiant, et P: le numéro de sport. Après on va remplir par hasard le tableau avec deux numéros: 1 et 0 (1 càd l'étudiant est inscrite au sport et 0 sinon).
Question 1: Ecrivez la fonction: void remplir_tab(int tab_insc[N][P]) pour afficher le tableau.
Question 2: Ecrivez la fonction: int nb_sports(int p, int tab_insc[N][P]) qui renvoie le nombre de sports auxquels l'étudiant numéro p est inscrite.
Question 3: Ecrivez la fonction: void compter_inscrits(int tab_insc[N][P],int tab_nb_inscrits[P]) qui utilise les données contenues dans le tableau tab_insc et qui, pour chaque sport:
- compte le nombre d'inscrits,
- affiche le résultat: le numéro du sport et le nombre d'inscrits,
- affecte cette valeur à l'élément correspondant du tableau tab_nb_inscrits
...
J'ai fait les codes jusqu'à question 2 et elles fonctionnent bien, comme ça:
J'ai une exercice à l'école. Je suis bloqué à partir de la question 3. Vous pouvez m'aider, s'il vous plaît??
Le sujet:
On s'intéresse à la gestion des inscriptions à un club sportif. On va créer un tableau tab_insc[N][P] avec N: le numéro d'étudiant, et P: le numéro de sport. Après on va remplir par hasard le tableau avec deux numéros: 1 et 0 (1 càd l'étudiant est inscrite au sport et 0 sinon).
Question 1: Ecrivez la fonction: void remplir_tab(int tab_insc[N][P]) pour afficher le tableau.
Question 2: Ecrivez la fonction: int nb_sports(int p, int tab_insc[N][P]) qui renvoie le nombre de sports auxquels l'étudiant numéro p est inscrite.
Question 3: Ecrivez la fonction: void compter_inscrits(int tab_insc[N][P],int tab_nb_inscrits[P]) qui utilise les données contenues dans le tableau tab_insc et qui, pour chaque sport:
- compte le nombre d'inscrits,
- affiche le résultat: le numéro du sport et le nombre d'inscrits,
- affecte cette valeur à l'élément correspondant du tableau tab_nb_inscrits
...
J'ai fait les codes jusqu'à question 2 et elles fonctionnent bien, comme ça:
#include <stdio.h> #include <stdlib.h> #include <time.h> #define P 5 #define N 10 void remplir_tab(int tab_insc[N][P]) { int i,j; srand(time(0)); printf ("Le Tableau est:\n"); for(i=0;i<N;i++) { for(j=0;j<P;j++) { tab_insc[i][j]=rand()%2; printf ("%d ",tab_insc[i][j]); } printf ("\n"); } } void nb_sports(int p,int tab_insc[N][P]) { int j,s=0; for (j=0;j<P;j++) { if (tab_insc[p-1][j]==1) { s++; } } printf ("Le nombre de sports que vous avez choisi est: %d\n",s); } int main(void) { int p,tab_insc[N][P]; remplir_tab(tab_insc); printf ("Veillez donner le numéro d'étudiant:\n"); scanf ("%d",&p); nb_sports(p,tab_insc); return 0; }
A voir également:
- Une programmation du club sport sportif
- Java sport - Télécharger - Jeux vidéo
- Mobile club - Accueil - Guide téléphones
- Application de programmation - Guide
- Sneakers factory club avis - Forum Consommation & Internet
- Bazoocam club ✓ - Forum Vos droits sur internet
1 réponse
Bonjour,
Question 1/
srand(time(0)); ne le met pas dans cette fonction mais dans le main().
Question 2/
void nb_sports(int p,int tab_insc[N][P])
Ta fonction doit être de type int nb_sports(...); et non void nb_sports(...). Et plutôt qu'afficher le résultat dans la fonction, tu dois renvoyer le résultat (return); et déporter l'affichage dans le main().
if (tab_insc[p-1][j]==1)
D'ailleurs plutôt que faire if(...), t'avais juste à faire une somme de toute ligne (puisque 0 est un élément neutre pour l'addition). C'est plus performant (bien que négligeable).
Plutôt que p-1, j'aurais mis p tout court. Puisque dans le tableau tab_insc[N][P] N représente le numéro de l'étudiant (et non N+1)
Question 3/
Ecrivez la fonction: void compter_inscrits(int tab_insc[N][P],int tab_nb_inscrits[P]) qui utilise les données contenues dans le tableau tab_insc et qui, pour chaque sport:
C'est quoi qui te pose problème précisément ?
- compte le nombre d'inscrits,
Tu dois calculer le nombre de personnes inscrits au sport i. Une simple boucle for suffit.
- affiche le résultat: le numéro du sport et le nombre d'inscrits,
Il suffit d'afficher la précédente valeur calculée.
- affecte cette valeur à l'élément correspondant du tableau tab_nb_inscrits
Il suffit de stocker cette valeur dans tab_nb_insc[i].
J'ai juste préciser comment calculer tab_nb_insc[i]. Il faudra faire une autre boucle for pour remplir toutes les valeurs du tableau.
Cdlt,
Question 1/
srand(time(0)); ne le met pas dans cette fonction mais dans le main().
Question 2/
void nb_sports(int p,int tab_insc[N][P])
Ta fonction doit être de type int nb_sports(...); et non void nb_sports(...). Et plutôt qu'afficher le résultat dans la fonction, tu dois renvoyer le résultat (return); et déporter l'affichage dans le main().
if (tab_insc[p-1][j]==1)
D'ailleurs plutôt que faire if(...), t'avais juste à faire une somme de toute ligne (puisque 0 est un élément neutre pour l'addition). C'est plus performant (bien que négligeable).
Plutôt que p-1, j'aurais mis p tout court. Puisque dans le tableau tab_insc[N][P] N représente le numéro de l'étudiant (et non N+1)
Question 3/
Ecrivez la fonction: void compter_inscrits(int tab_insc[N][P],int tab_nb_inscrits[P]) qui utilise les données contenues dans le tableau tab_insc et qui, pour chaque sport:
C'est quoi qui te pose problème précisément ?
- compte le nombre d'inscrits,
Tu dois calculer le nombre de personnes inscrits au sport i. Une simple boucle for suffit.
- affiche le résultat: le numéro du sport et le nombre d'inscrits,
Il suffit d'afficher la précédente valeur calculée.
- affecte cette valeur à l'élément correspondant du tableau tab_nb_inscrits
Il suffit de stocker cette valeur dans tab_nb_insc[i].
J'ai juste préciser comment calculer tab_nb_insc[i]. Il faudra faire une autre boucle for pour remplir toutes les valeurs du tableau.
Cdlt,