Résolu Probleme avec un programme en C

L'hirondelle

Membre
Inscription
24 Mars 2013
Messages
623
Réactions
93
Points
11 323
Bonjour,
j'ai fai un programme en C qui calcul la moyenne des notes entrées par l'utilisateur.
Le problème c'est qu'à la fins, il donne une mauvaise moyenne.

Voici mon code:

Code:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int nb_n = 0; /* nombre notes */
    int resultat = 0;
    int cpt = 0;  /* compteur */
    int sdn = 0; /* Somme des notes */


    printf("Combien de notes avez vous a rentrer ? ");
    scanf("%d", &nb_n);

    for(cpt = 1 ; nb_n >= cpt ; cpt++)
        {
            printf("Votre %d eme note :", cpt);
            scanf("%d", &sdn);
            sdn+= resultat;
        }
        resultat = sdn / nb_n;
        printf("Votre moyenne est %d ! ", resultat);

    return 0;
}

Néanmoins je suppose que l'erreur se trouve ici
Code:
resultat = sdn / nb_n;

Si vous voulez + de détails, dites :)
 
Dernière édition:

L'hirondelle

Membre
Inscription
24 Mars 2013
Messages
623
Réactions
93
Points
11 323
Je spécifie pas de le type car dans :

Code:
resultat = sdn / nb_n;

je dis que la variable résultat est maintenant égale au calcul suivant : la variable snd divisée par la variable nb_n

Etant donné que la variable resultat est déjà une "variable", puisque je l'ai déjà déclarée au début du programme, pourquoi la re déclarée ? :

Code:
int resultat = sdn / nb_n;
 

Paul GTP

Légende vivante
VIP
Inscription
15 Août 2013
Messages
6 194
Réactions
7 545
Points
24 772
Je spécifie pas de le type car dans :

Code:
resultat = sdn / nb_n;

je dis que la variable résultat est maintenant égale au calcul suivant : la variable snd divisée par la variable nb_n

Etant donné que la variable resultat est déjà une "variable", puisque je l'ai déjà déclarée au début du programme, pourquoi la re déclarée ? :

Code:
int resultat = sdn / nb_n;
Exact, je n'avais pas vu que tu l'avait déclaré juste au dessus !
Tu peux me donner un exemple de la moyenne que te donnes ton programme avec les notes suivantes ?

-10 15 20
- 10 10 0
- 0 10 10 (sait-on jamais !)
 

L'hirondelle

Membre
Inscription
24 Mars 2013
Messages
623
Réactions
93
Points
11 323
025aec71f9.png

En voilà une avec 4 notes

58c6d3802e.png


Voilà l'autre avec 3 notes.
 

Paul GTP

Légende vivante
VIP
Inscription
15 Août 2013
Messages
6 194
Réactions
7 545
Points
24 772
J'ai trouvé.

Je me suis lourdé dans le scanf de la boucle for :
Code:
scanf("%d", &sdn);

Je dois faire un scanf de la variable resultat au lieu de la variable sdn.

Merci quand même pour ton aide @Paul GTP ::): malgré que tu ne t'y connaissais pas bcp en C tu as essayé de m'aider ::):.

Pas de soucis, effectivement, je n'aurais jamais trouvé tout seul :xD:
Je pensais que le problème pouvait venir de ta boucle et pouvoir t'aider à la corriger mais du coup oui, rien à voir ! :rofl:

Ta demande est-elle résolue ?

Si oui, je t'invite à cliquer sur Cette réponse a répondu à ma question sur le message qui t'a aidé pour rajouter le préfixe résolu à la discussion. :)

Bonne fin de soirée,
Paul GTP
 
Cette réponse a aidé l'auteur de cette discussion !
Haut