Problème avec des types de variables en C...

Problème avec des types de variables en C... - C - Programmation

Marsh Posté le 23-02-2006 à 10:22:42    

Voila mon programme... bien que tout bète il me pose un problème lorsque MOYENNE est décimal... il la considère comme un entier...
Comment y remédier... expliquez moi... MERCI
 

Code :
  1. #include <stdio.h>
  2. int main (void) {
  3. int VAR, COMPTEUR;
  4. float MOYENNE, SOMME;
  5. SOMME = 0;
  6. COMPTEUR = 0;
  7. printf("Saisissez une suite de nombres positifs s'achevant par un  nombre negatif : \n" );
  8. do {
  9. scanf("%d",&VAR);
  10. if(VAR >= 0) {
  11. SOMME = SOMME + VAR;
  12. COMPTEUR = COMPTEUR + 1;
  13. }
  14. }
  15. while(VAR >= 0);
  16. MOYENNE = SOMME / COMPTEUR;
  17. printf("\nMoyenne des entiers saisis : %d\n",MOYENNE);
  18. return 0;
  19. }

Reply

Marsh Posté le 23-02-2006 à 10:22:42   

Reply

Marsh Posté le 23-02-2006 à 10:59:58    

Clochette POWER a écrit :

Voila mon programme... bien que tout bète il me pose un problème lorsque MOYENNE est décimal... il la considère comme un entier...
Comment y remédier... expliquez moi... MERCI
 

Code :
  1. #include <stdio.h>
  2. int main (void) {
  3. int VAR, COMPTEUR;
  4. float MOYENNE, SOMME;
  5. SOMME = 0;
  6. COMPTEUR = 0;
  7. printf("Saisissez une suite de nombres positifs s'achevant par un  nombre negatif : \n" );
  8. do {
  9. scanf("%d",&VAR);
  10. if(VAR >= 0) {
  11. SOMME = SOMME + VAR;
  12. COMPTEUR = COMPTEUR + 1;
  13. }
  14. }
  15. while(VAR >= 0);
  16. MOYENNE = SOMME / COMPTEUR;
  17. printf("\nMoyenne des entiers saisis : %d\n",MOYENNE);
  18. return 0;
  19. }



Ben "%d" pour l'affichage d'un "float" c'est pas forcément ce qu'il y a de mieux. Ptet que si t'essayais "%f"...
 
Petite remarque en passant: les noms des variables sont usuellement écrits en minuscules, avec parfois une majuscule ou deux pour illustrer le rôle de la variable. ex:

Code :
  1. int nbCaracLu;


Les noms tout en majuscules étant usuellement réservés aux macros...


Message édité par Sve@r le 23-02-2006 à 11:02:44

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 23-02-2006 à 15:03:13    

Clochette POWER a écrit :

Code :
  1. int VAR, COMPTEUR;
  2. float MOYENNE, SOMME;
  3. scanf("%d",&VAR);
  4. printf("\nMoyenne des entiers saisis : %d\n",MOYENNE);



 
Il y a incohérence entre les formats et les types.
printf()
"%d" : char, short ou int -> texte décimal
"%f" :  float ou double  -> texte décimal à virgule fixe
 
scanf()
"%d" : texte décimal -> int
"%f" :  texte décimal à virgule fixe ou notation scientifique -> float
"%lf" :  texte décimal à virgule fixe ou notation scientifique -> double
 
D'autre part, je déconseille scanf()
 
http://mapage.noos.fr/emdel/notes.htm#saisie
http://mapage.noos.fr/emdel/notes.htm#fichiers
 


Message édité par Emmanuel Delahaye le 23-02-2006 à 15:05:30

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed