IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Aide débutant algorithme moyenne


Sujet :

C

  1. #1
    Futur Membre du Club Avatar de Croixpizza
    Homme Profil pro
    Programmeur
    Inscrit en
    Septembre 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Programmeur
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2018
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Aide débutant algorithme moyenne
    Bonjour je débute en C et je souhaite créer un programme permettant à l'utilisateur de rentrer des notes (9), de les afficher et ensuite de calculer automatiquement une moyenne. Cependant lorsque je lance mon programme il me donne tout comme il faut, je rentre mes valeurs mais au moment d'afficher la moyenne il me met " la moyenne est de '1' bien joue !"

    Voici mon programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    #include <stdio.h>
    #include <stdlib.h>
     
    int main()
    {
    int resultats = 0;
    int moyenneA = 0;
    int moyenneB = 0;
    int moyenneC = 0;
    int moyenneD = 0;
    int moyenneE = 0;
    int moyenneF = 0;
    int moyenneG = 0;
    int moyenneH = 0;
     
    printf("moyenne d'anglais:\n ");
    scanf("%d",&moyenneA);
    printf("moyenne d'espagnol:\n");
    scanf("%d",&moyenneB);
    printf("moyenne de maths:\n");
    scanf("%d",&moyenneC);
     
    printf("moyenne de physique:\n");
    scanf("%d",&moyenneD);
     
    printf("moyenne d'ETT:\n");
    scanf("%d",&moyenneE);
     
    printf("moyenne de sport:\n");
    scanf("%d",&moyenneF);
     
    printf("moyenne de philo:\n");
    scanf("%d",&moyenneG);
     
    printf("moyenne de Francais:\n");
    scanf("%d",&moyenneE);
     
    printf("moyenne d'Histoire:\n");
    scanf("%d",&moyenneH);
     
    resultats = (moyenneA+moyenneB+moyenneC+moyenneD+moyenneE+moyenneF+moyenneG+moyenneH)/9;
     
    printf("ta moyenne est de %d bien joue !\n");
        return 0;
    }
    Je tiens à rappeler que je suis débutant.
    Merci

  2. #2
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Que contiennent tes variables après la saisie ?

    Tu passes les adresses de certaines variables plus d'une fois à scanf, écrasant ainsi ce qui y a été mis avant.

    Attention : en C, l'opérateur de division d'un nombre entier par un autre nombre entier renvoie le quotient de la division entière.

    Il est aisé d'obtenir plus de nombres significatifs en base n, par exemple en multipliant auparavant le dividende par un facteur n à la puissance k.

  3. #3
    Futur Membre du Club Avatar de Croixpizza
    Homme Profil pro
    Programmeur
    Inscrit en
    Septembre 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Programmeur
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2018
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Je vois merci d'avoir consacré du temps à mon problème, si je comprend bien je dois revoir mes variables ainsi que ma fonction "scanf"
    Oui merci pour la division je comprend maintenant pourquoi j'obtenait 1 ^^

  4. #4
    Membre averti
    Homme Profil pro
    très occupé
    Inscrit en
    Juillet 2014
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : très occupé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 137
    Points : 411
    Points
    411
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf("ta moyenne est de %d bien joue !\n");
    Il manque le contenu de la variable correspondante au spécificateur %d que tu veux afficher et c'est la raison principale pour laquelle ton affichage n'a pas de sens, outre l'écrasement signalé, même avec un résultat entier résultant qu'une division entière.

  5. #5
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 677
    Points : 30 965
    Points
    30 965
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Plutôt que toutes ces variables "moyenneA", "moyenneB", etc; tu ne voudrais pas essayer de passer par un tableau ?

    Déjà même si ça semble effrayant au début, au fur et à mesure tu découvriras que c'est bien plus pratique et surtout plus évolutif. Aujourd'hui tu as peut-être 9 matières mais demain si tu en as 15, tu changes juste "9" par "15" et tout refonctionne. Surtout que quand tu auras appris les structures, tu pourras associer des libellés et ainsi au final faire toute ta saisie dans une simple boucle.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 804
    Points : 7 080
    Points
    7 080
    Par défaut
    Bonsoir,

    Pourquoi pas créer une fonction calculant la moyenne d'une matière, que l'on appliquerait à n matières ?
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

Discussions similaires

  1. Aide pour algorithme
    Par Sinclaire dans le forum Langage
    Réponses: 5
    Dernier message: 29/03/2006, 19h58
  2. aide : recherche algorithme mapping
    Par nagty dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 30/12/2005, 14h19
  3. Aide débutant instruction VBA tableau Excell
    Par damien33 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/09/2005, 10h31
  4. Besoin d'aide pour algorithme de traitement d'images
    Par Zenman94 dans le forum Algorithmes et structures de données
    Réponses: 13
    Dernier message: 07/04/2005, 14h31
  5. [aide débutant servlet]
    Par viny dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 26/03/2004, 10h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo