Je débute en C et j'ai du mal !!

armenias Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   -  
Wardog Messages postés 389 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous, et merci d'avance pour ceux qui vont m'aider.. je commence a programmer en C et voici le premier programme très simple que je viens de créer :

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

main ()


{

float x=0, a=0 ;
printf("Entre une vitesse en kmh");
scanf("%lf", &x);
a=x*0.621;
printf("\n La vitesse en mih correspond a %f", a);
system("PAUSE");

}


Quand je l'exécute, il me met dans tout les cas comme resultat 0.000000000.. pourquoi ?

3 réponses

Wardog Messages postés 389 Date d'inscription   Statut Membre Dernière intervention   159
 
Salut,



double x=0, a=0 ;
printf("Entre une vitesse en kmh");
scanf("%lf", &x);
printf("%lf", x);
a=x*0.621;
printf("\n La vitesse en mih correspond a %lf", a);
system("PAUSE");



printf() ne fait pas de difference entre %f and %lf. Cependant, dans scanf(), utilise %lf pour les double et %f pour les float.
0
armenias Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
C'est ce que j'ai fait ? non ?
0
Wardog Messages postés 389 Date d'inscription   Statut Membre Dernière intervention   159
 
Non, tu as utilisé %lf avec un float dans scanf.

Si tu as toujours pas compris, compile et exécute ça:

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

int main()
{

    float  x;

    puts("\nEntrez une valeur pour %lf :");
    scanf("%lf", &x);
    printf("Avec %%lf x = %f\n", x);

    puts("\nEntrez une valeur pour %f :");
    scanf("%f", &x);
    printf("Avec %%f x = %f\n", x);

    system("PAUSE");

    return(0);
}


0