Résultat exécution bizarre C

Résolu
Bonjour,
Voici le programme que j'ai écrit:

#include<stdio.h>

int main()
{
double a, b, s;

printf("A= ");
scanf("%f", &a);
printf("B= ");
scanf("%f", &b);

s=a+b;

printf("s=%f\n", s);

return 0;
}

A l'exécution: n'importe quelles valeurs affectées à a et b, j'ai s=0.0000000
je comprends rien, quelqu'un pour m'expliquer please?
Merci d'avance
Configuration: Windows XP
Firefox 3.5.3

10 réponses

  • Votes
  • Date
  • Date décroissante
  1. A la place de ld, j'ai mis lf, et ça marche! Merci Dragonmastertran pour ton aide, j' y serai pas arrivé sans toi :)
    1. une grande valeur? grande comment ? dans les millions ou plus?
      1. ça marche pour les petits nombres, c'est déjà ça!
        mais lorsque j'ai mis une grande valeur, le 0 a refait son show!
        1. ok, j'ai trouvé,

          tu ne peux pas mettre

          ("%f", &b)

          mais plutot

          ("%ld", &b)

          car c'Est un nombre que tu veux
          1. Si ça marche chez toi, alors le problème n'est pas dans le programme, non?
            1. Je viens de 'essayer, ça marche... à moins qu'il y ait une autre erreur dans le tien que je n'ai pas encore vu...
              1. Tu veux dire que je dois les initialiser à 0 au début? Si c'est ça, ça ne marche pas.
                1. bonjour, il faudrait que tes variales au début soit à 0.

                  genre :

                  long a = 0 , b = 0 , s = 0;

                  sinon, la valeur des variable serait mélangé

                  et puis, il te faut les bibliotheque de données.

                  #include <stdlib.h>
                  #include <math.h>