Probleme de calcul d'une moyenne

[Résolu]
Signaler
Messages postés
5
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
3 novembre 2006
-
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
-
Salut,
J'ai commence la programmation il y a quelques mois et là je veux faire un calcul de moyenne, voici le programme :

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


int main()
{
    long coeftotal=0;
    long total=0;
    long coef=0;
    long nombreentre=0;
    long arreter=0;
    printf("Calcul d'une moyenne");
    while (arreter==0)
    {
        printf("\n\n\nNombre :");
        scanf("%lf", &nombreentre);
        printf("\n\nCoefficient(si aucun alors mettre 1) :");
        scanf("%lf", &coef);
        nombreentre *= coef;
        coeftotal += coef;
        total += nombreentre;
        total /= coeftotal;
        printf("\nMoyenne = %lf", total);
        coef=0;
        nombreentre=0;
    }
 return 0;
}
Probleme : quand je passe les %lf à %ld(décimal à entier) il veut bien me les calculer par contre avec %lf il veut pas quand il calcule il m'arrête le programme!!! Pourquoi? Comment faire ce calcul avec les décimals?

Merci d'avance de vos solutions


PS : Je travaille avec le langage C




Only C/C++. Longue vie au C/C++

.

8 réponses

Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])

    float note;
    float moyenne = 0;
    int iNbr = 0;
   
    do
    {
        printf("Note %i : ", iNbr+1);
        scanf("%f", &note);
        moyenne += note;
        iNbr++;
   } while(note > 0.f);
   moyenne -= note;
   iNbr--;
  
    moyenne /= (float)iNbr;
    printf("La moyenne est de : %f\n", moyenne);
    system("PAUSE");   
   return 0;
}

ULARGE_INTEGERJokyQi=QI("Joky"
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Et bien au lieu d'utiliser des long utilises des floats

ULARGE_INTEGERJokyQi=QI("Joky"
Messages postés
295
Date d'inscription
dimanche 4 mai 2003
Statut
Membre
Dernière intervention
6 décembre 2010

int a=5;
int b=3;
float c;

c=(float)a/b;
Messages postés
295
Date d'inscription
dimanche 4 mai 2003
Statut
Membre
Dernière intervention
6 décembre 2010

Hey, moi aussi j'ai droit a un truc vert lol.
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Ben fouille dans ton nez, tu trouveras certainement un truc vert :)

ULARGE_INTEGERJokyQi=QI("Joky"
Messages postés
5
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
3 novembre 2006

Ah c'est dégoutant!!! Au fait merci pour les reponses malheureusement NIKETOU ta réponse ne traitait pas de la saisie de l'utilisateur ce qui je m'en suis rendu compte etait mon probleme merci quand même!!!

Only C++. Longue vie au C++
.
Messages postés
549
Date d'inscription
samedi 6 septembre 2003
Statut
Membre
Dernière intervention
6 mars 2010

Bonjour,

joky, qu'est ce qui se passe si je rentre, avec mes gros doigts, une lettre au lieu d'un chiffre ???
pour lire une entrée, perso :  fgets

Matt...
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Oui c'est vrai qu'on doit coder en considérant l'utilisateur comme un gros naze
J'avais zappé ce passage
Mais tes gros doigts au pire, tu peux les mettre à disposition de niketou :)

ULARGE_INTEGERJokyQi=QI("Joky"