Les Allergies
Alimentaires
Posez votre question Signaler

Pb avec scanf les valeurs ne sont pas lues [Résolu]

dark101 5Messages postés 19 novembre 2004Date d'inscription - Dernière réponse le 2 sept. 2007 à 21:46
Bonjour,
Je debute en C++ et j'utilise devc++ voici le prog du cours :
#include <stdio.h> /* Autorise l'emploi de printf et de scanf. */
#include <stdlib.h> /*permet d'utiliser la commande system ("pause" ); pour ne pas fermer la console*/
long double x ,y;
int main(void)
{
printf("Calcul de moyenne\n"); /* Affiche le titre. */
printf("Entrez le premier nombre : ");
scanf("%Lf", &x); /* Entre le premier nombre. */
printf("\nEntrez le deuxième nombre : ");
scanf("%Lf", &y); /* Entre le deuxième nombre. */
printf("\nLa valeur moyenne de %Lf et de %Lf est %Lf.\n", x, y, (x+y)/2);
system ("pause" );
return 0;
}
Le probleme c'est que le programme lit correctement la valeur de x (il affiche 5 si je tape 5) mais pour y il affiche 0 peu importe le nombre voici ce qu'affiche la console se serat peut etre plus clair.
Calcul de moyenne
Entrez le premier nombre : 5
Entrez le deuxiÞme nombre : 5
La valeur moyenne de 5.000000 et de 0.000000 est 0.000000.
Appuyez sur une touche pour continuer...
quelle est le probleme??
Lire la suite 

Pb avec scanf les valeurs ne sont pas lues »

8 réponses
Réponse
+0
moins plus
Aucune idée chez moi ça fonctionne correctement.
(mando@aldur) (~) $ gcc -W -Wall plop.c
(mando@aldur) (~) $ ./a.out
Calcul de moyenne
Entrez le premier nombre : 5555555555

Entrez le deuxième nombre : 55588888

La valeur moyenne de 5555555555.000000 et de 55588888.000000 est 2805572221.500000.

Est-ce que tu peux essayer en utilisant des doubles (au lieu des long double) et en lisant avec "%lf" ?

Bonne chanceConfiguration: Linux Debian Mozilla 1.8.1.6
Ajouter un commentaire
Réponse
-1
moins plus
Quelques remarques pas très importantes
- Tu peux sous entendre le void dans int main(void)
- Evite les variables globales, x et y devraient simplement être déclarées dans le main
- A priori l'utilisation de long double est un peu abusive, tu peux te contenter de double dans la très grande majorité des cas.

Chez moi ce programme marche :
#include <stdio.h>

int main(){
    long double x ,y;
    printf("Calcul de moyenne\n");
    printf("Entrez le premier nombre : ");
    scanf("%Lf", &x);
    printf("\nEntrez le deuxième nombre : ");
    scanf("%Lf", &y);
    printf("\nLa valeur moyenne de %Lf et de %Lf est %Lf.\n", x, y, (x+y)/2);
    return 0;
}

Ce qui donne :
(mando@aldur) (~) $ gcc -W -Wall plop.c
(mando@aldur) (~) $ ./a.out
Calcul de moyenne
Entrez le premier nombre : 5

Entrez le deuxième nombre : 7

La valeur moyenne de 5.000000 et de 7.000000 est 6.000000.

Je t'avoue que dans ton code je ne vois pas d'erreur tu es sûr d'avoir recompilé ?
Configuration: Linux Debian Mozilla 1.8.1.6
Ajouter un commentaire
Réponse
-1
moins plus
oui j'ai bien recompiler mais rien n'y fait même en prenant des variables locales. Ca vient peut etre du compilateur j'utilise dev c++Configuration: Windows XP Internet Explorer 7.0
Ajouter un commentaire
Réponse
-1
moins plus
Ben dev C++ repose sur gcc et tu as bien vu que j'ai compilé avec gcc. C'est vraiment bizarre :s
Par contre tu as peut être une vieille version bugguée qui sait ? Tu es sûr de recompiler le bon fichier source et de lancer le bon exécutable ?

Bonne chanceConfiguration: Linux Debian Mozilla 1.8.1.6
Ajouter un commentaire
Réponse
-1
moins plus
oui je recompile le bon fichier , je lance lance le bon executable j'essaye de mettre a jour dev c++ -(version 4.9.9.2) et ce n'est pas mieux.
ca ne pourrait pas venir de la console en elle même ou d'application windws utilisé?Configuration: Windows XP Internet Explorer 7.0
Ajouter un commentaire
Réponse
-1
moins plus
nouvelle bizarrerie, si ca peut t'aider !

Calcul de moyenne
Entrez le premier nombre : 5555555555

Entrez le deuxiÞme nombre : 55588888

La valeur moyenne de 5555555555.000000 et de -2.000000 est 0.000000.
Appuyez sur une touche pour continuer...Configuration: Windows XP Internet Explorer 7.0
Ajouter un commentaire
Réponse
-1
moins plus
ouui ca y est ! ca marche c'était bien à cause des long double, je comprend pas pourquoi mais ca marche! Merci beaucoup j'espere que je n'aurais jamais besoin des long double.Configuration: Windows XP Internet Explorer 7.0
Ajouter un commentaire
Réponse
-1
moins plus
Ahaha bon ben c'est bon à savoir, ça marche sous linux mais pas windows. Rassure toi les long double ne servent en pratique jamais, les double sont suffisants dans la très grande majorité des cas. En tout cas c'est cool que ton problème soit résolu !

A bientôtConfiguration: Linux Debian Mozilla 1.8.1.6
Ajouter un commentaire
Ce document intitulé « pb avec scanf les valeurs ne sont pas lues » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?