1 utilisateur anonyme et 15 utilisateurs inconnus

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

faire une division en C avec les decimals

 
n°55280
fredo490
Mais pourquoi donc ?
Posté le 06-02-2007 à 18:37:05  profilanswer
 

j'ai un petit soucis au niveau d'une moyenne ...
celle ci ne se fait pas avec les decimals ! On m'a parle d'une commande special car le "/" ne fait que les divisions en gardant les entiers.
Une solution ?!
 

Code :
  1. #include <stdio.h>
  2. main()
  3. {
  4.       int entree1;
  5.       int entree2;
  6.       int limite_inf;
  7.       int limite_sup;
  8.       float moyenne;
  9.       int somme;
  10.       int compteur;
  11.      
  12. // classement des deux valeurs
  13.     printf("\nVeuillez saisir la premiere valeur\n" );
  14.     scanf("%ld", &entree1);
  15.    
  16.     printf("\nVeuillez saisir la deuxieme valeur\n" );
  17.     scanf("%ld", &entree2);
  18.  
  19. if (entree1 <= entree2)
  20. {
  21.     limite_inf = entree1 ;
  22.     limite_sup = entree2 ;
  23.     }
  24. else
  25. {
  26.     limite_inf = entree2 ;
  27.     limite_sup = entree1 ;
  28.     }
  29.    
  30. // calcul de la moyenne et de la somme
  31.     somme = limite_inf + limite_sup ;
  32.     moyenne = (limite_inf + limite_sup)/2 ;
  33. // IL Y A UN PROBLEME AU NIVEAU DE LA CALCUL DE LA MOYENNE, IL NE PREND PAS EN COMPTE LES VALEURS APRES LA VIRGULE.     
  34.    
  35.    
  36. // affichage des resultats
  37.    
  38.     for (compteur = 0 ; compteur <= limite_sup - limite_inf ; compteur++)
  39.     {
  40.     printf("Valeur %d : %d \n", compteur, limite_sup-compteur);
  41.     }
  42.     printf("Somme : %d\n", somme);
  43.     printf("Moyenne : %f\n", moyenne);
  44.    
  45. }

n°55282
Freeed
Posté le 06-02-2007 à 18:39:02  profilanswer
 

Faut caster ;)
 
soit :

Code :
  1. moyenne = (float)somme / 2;


soit :  

Code :
  1. moyenne = somme / 2.0;


---------------
Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
Play loud, drink hard.
n°55283
Twan
Posté le 06-02-2007 à 18:39:46  profilanswer
 

essaye en mettant tout en float peut etre, le fait que tu calcul avec des int ca le derange. Ou alors peut etre divise par 2.0, je sais pas trop ...
Edit :  [:twan:5]


Message édité par Twan le 06-02-2007 à 18:40:20
n°55284
fredo490
Mais pourquoi donc ?
Posté le 06-02-2007 à 18:46:00  profilanswer
 

merci bien ! ca marche a merveille

n°55287
LostSoul
Vivement TES V
Posté le 06-02-2007 à 19:56:05  profilanswer
 

Enfin bon qqpart c'est même pas un problème de C, c'est un problème de typage. Si tu travailles avec des entiers, quel que soit le langage, t'auras jamais que des entiers en retour ...


---------------
(pas de signature ce jour)
[ www.in-wonderland.net | www.start64.com | www.majorgeeks.com ]
n°55290
fredo490
Mais pourquoi donc ?
Posté le 06-02-2007 à 21:26:38  profilanswer
 

LostSoul a écrit :

Enfin bon qqpart c'est même pas un problème de C, c'est un problème de typage. Si tu travailles avec des entiers, quel que soit le langage, t'auras jamais que des entiers en retour ...


 
Ben on a pas forcement envie de se taper les x zero des decimaux ... Donc bon !
En tout cas, la magouille est sympa

n°55293
LostSoul
Vivement TES V
Posté le 06-02-2007 à 23:19:59  profilanswer
 

Ben y'a pas de "magouille" c'est juste comme ca qu'il faut faire ...


---------------
(pas de signature ce jour)
[ www.in-wonderland.net | www.start64.com | www.majorgeeks.com ]

Aller à :
Ajouter une réponse