Problème avec mon code C
Résolu/Fermé
sonic1ne
Messages postés
8
Date d'inscription
dimanche 15 juin 2008
Statut
Membre
Dernière intervention
15 mars 2009
-
4 mars 2009 à 16:49
sonic1ne Messages postés 8 Date d'inscription dimanche 15 juin 2008 Statut Membre Dernière intervention 15 mars 2009 - 4 mars 2009 à 18:09
sonic1ne Messages postés 8 Date d'inscription dimanche 15 juin 2008 Statut Membre Dernière intervention 15 mars 2009 - 4 mars 2009 à 18:09
A voir également:
- Problème avec mon code C
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
3 réponses
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
4 mars 2009 à 17:10
4 mars 2009 à 17:10
jvois pas pourquoi tu utilises un tableau pour stocker la somme une variable float suffit
essaye ça
essaye ça
#include <stdio.h> #include <string.h> #define TAILLE_NOM 10 #define TAILLE_PRENOM 2*TAILLE_NOM #define NB_NOTES 5 #define MAX_ETUDIANTS 50 main() { int i,j, nbelements, nbeleves,finir_saisie ; /* declaration du type etudiant */ struct etudiant { char nom[TAILLE_NOM] ; char prenom[TAILLE_PRENOM] ; float notes[NB_NOTES]; float somme; int age; } ; /* declaration du tableau des eleves */ struct etudiant tab_eleves[MAX_ETUDIANTS]; /* === DEBUT DU PROGRAMME === */ i=0; finir_saisie=0; /* boucle de saisie */ while (! finir_saisie) { printf("Entrez un nom ( nom=fin pour terminer):"); scanf("%s",tab_eleves[i].nom); finir_saisie=((strcmp(tab_eleves[i].nom,"fin"))==0); /* si la saisie n'est pas finie */ /* on demande le reste des informations */ if (! finir_saisie) { printf("Entrez un prénom:"); scanf("%s",tab_eleves[i].prenom); printf("Entrez un âge:"); scanf("%d",&tab_eleves[i].age); /* --- saisie des notes --- */ printf("Entrez les %d notes :", NB_NOTES); for (j=0; j<NB_NOTES; j++) { scanf("%f", &tab_eleves[i].notes[j]); tab_eleves[i].somme += tab_eleves[i].notes[j]; } i++ ; } printf("\n"); } /* on met a jour la variable de controle du tableau */ nbeleves = i ; nbelements = j; /* boucle de verification */ printf("\n----- Vérification saisie ------\n"); for (i=0; i<nbeleves; i++) { printf("\neleve %2d : ",i); printf("%10s %10s ",tab_eleves[i].nom,tab_eleves[i].prenom); printf("%2d \n", tab_eleves[i].age); printf("Notes :"); for (j=0; j<NB_NOTES; j++) printf("%6.2f", tab_eleves[i].notes[j]); printf("\nMoyenne :"); printf("%6.2f", tab_eleves[i].somme/NB_NOTES); printf("\n"); } printf("\n"); }
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 840
4 mars 2009 à 17:17
4 mars 2009 à 17:17
Salut,
Tout d'abord, je te conseille plutôt de mettre ta structure en dehors de ton main. C'est plus lisible.
Ensuite main renvoie un int. Donc int main(void) et à la fin return 0;
Ensuite pour la moyenne, je commande de créer tout simplement un autre champ dans ta structure intitulée moyenne.
Une fois que tu as fait les sommes des notes, et que tu as divisé par le nombre de notes, tu stockes le résultat dans ce champ. Tu n'as pas besoin du champ somme. Ou alors pas en tableau.
Ce qui donnerait :
Et après t'affiches le champ moyenne.
Cdlt
Tout d'abord, je te conseille plutôt de mettre ta structure en dehors de ton main. C'est plus lisible.
Ensuite main renvoie un int. Donc int main(void) et à la fin return 0;
Ensuite pour la moyenne, je commande de créer tout simplement un autre champ dans ta structure intitulée moyenne.
Une fois que tu as fait les sommes des notes, et que tu as divisé par le nombre de notes, tu stockes le résultat dans ce champ. Tu n'as pas besoin du champ somme. Ou alors pas en tableau.
Ce qui donnerait :
float somme=0; for (int j=0; j<NB_NOTES; j++) { somme+=tab_eleves[i].notes[j]; } tab_eleves[i].moyenne = somme/NB_NOTES;
Et après t'affiches le champ moyenne.
Cdlt
sonic1ne
Messages postés
8
Date d'inscription
dimanche 15 juin 2008
Statut
Membre
Dernière intervention
15 mars 2009
4 mars 2009 à 18:09
4 mars 2009 à 18:09
Merci pour ta réponse mype. J'avais déjà essayé d'utiliser somme sans tableau mais sans mettre le printf de vérification saisie de somme comme tu l'a fait à la fin du programme. Le résultat est ce que je voulais.
Merci aussi ta réponse fiddy. je suis en train de l'étudier.
Merci aussi ta réponse fiddy. je suis en train de l'étudier.