Problème avec les double float

Problème avec les double float - C - Programmation

Marsh Posté le 27-11-2005 à 11:36:35    

Bonsoir,
J'ai un problème avec mes double float lors de l'execution. Quand j'entre une valeur pour mon double, le programme n'arrive pas à scanner la valeur, donc impossible de l'utiliser. Il lui donne une valeur de 0.000000 avec n'importe que lnombre entré... le début de mon programme est le suivant:
#include <stdio.h>
#include <math.h>
 
int main (void)
 
{ double x, tradsin, aapp;
  int n;
 
  printf ("Donnez la valeur de x en degre: \n" );
  scanf ("%f", &x);
   
  printf ("Donnez le nombre de termes: \n" );
  scanf ("%f", &n);
   
  tradsin = asin ((M_PI/180)*x);
  printf ("sin(%f) = %f avec sinus standard\n", x, tradsin);
   
  system ("pause" );
}

Reply

Marsh Posté le 27-11-2005 à 11:36:35   

Reply

Marsh Posté le 27-11-2005 à 12:15:12    

avec les double : scanf("%lf", &x) et %d pour les int
 
 

Code :
  1. #include <stdio.h>
  2. #include <math.h>
  3. /* M_PI n'est pas ANSI */
  4. #ifndef M_PI
  5. #define M_PI 3.1415
  6. #endif
  7. int main(void)
  8. {
  9. double x, tradsin;
  10. int n;
  11. printf("Donnez la valeur de x en degre:" );
  12. fflush(stdout);
  13. scanf("%lf", &x);
  14. printf("Donnez le nombre de termes:" );
  15. fflush(stdout);
  16. scanf("%d", &n);
  17. tradsin = asin((M_PI/180)*x);
  18. printf("sin(%f) = %f avec sinus standard\n", x, tradsin);
  19. return 0;
  20. }

Reply

Marsh Posté le 27-11-2005 à 15:46:45    

Taz a écrit :

avec les double : scanf("%lf", &x) et %d pour les int


Evidemment, tu voulais dire fgets() + strtod() et fgets() + strtol(), mais tu as fait une faute de frappe ;-)

Citation :


Code :
  1. #include <stdio.h>
  2. #include <math.h>
  3. /* M_PI n'est pas ANSI */
  4. #ifndef M_PI
  5. #define M_PI 3.1415
  6. #endif




Pauvret !

#ifndef M_PI
#define M_PI 3.1416
#endif


ou

#ifndef M_PI
#define M_PI 3.14159
#endif


Message édité par Emmanuel Delahaye le 27-11-2005 à 16:58:56

---------------
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

Marsh Posté le 27-11-2005 à 16:38:41    

j'ai fait la version simple, ça fait longtemps que j'ai plus la force de sortir la tirade sur fgets + strto*/sscanf.
 
Cela dit, ma remarque sur scanf est bonne : c'est fou le nombre de gens (je dirais 95% en milieu universitaire) font cette faute de format sur scanf avec les double.

Reply

Sujets relatifs:

Leave a Replay

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