Probleme programme console c
Résolu/Fermé
dialga08
Messages postés
443
Date d'inscription
mercredi 10 septembre 2008
Statut
Membre
Dernière intervention
5 février 2012
-
11 nov. 2009 à 23:20
adnanforum Messages postés 204 Date d'inscription samedi 24 janvier 2009 Statut Membre Dernière intervention 21 janvier 2010 - 12 nov. 2009 à 22:55
adnanforum Messages postés 204 Date d'inscription samedi 24 janvier 2009 Statut Membre Dernière intervention 21 janvier 2010 - 12 nov. 2009 à 22:55
A voir également:
- Probleme programme console c
- Programme demarrage windows 10 - Guide
- Console action - Accueil - Jeu vidéo
- Désinstaller programme windows 10 - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Forcer la fermeture d'un programme - Guide
12 réponses
skuti
Messages postés
53
Date d'inscription
dimanche 27 septembre 2009
Statut
Membre
Dernière intervention
29 janvier 2013
2
12 nov. 2009 à 00:46
12 nov. 2009 à 00:46
C'est normale !
resultatt est un double et dans ton printf tu utilise %d alors qu'il faudrais utilisé %lf
resultatt est un double et dans ton printf tu utilise %d alors qu'il faudrais utilisé %lf
dialga08
Messages postés
443
Date d'inscription
mercredi 10 septembre 2008
Statut
Membre
Dernière intervention
5 février 2012
83
12 nov. 2009 à 17:03
12 nov. 2009 à 17:03
sa ne fonctionne pas
EDIT:avec double il m'affiche 0.0000000 meme en remplacant %d par %f
EDIT:avec double il m'affiche 0.0000000 meme en remplacant %d par %f
dialga08
Messages postés
443
Date d'inscription
mercredi 10 septembre 2008
Statut
Membre
Dernière intervention
5 février 2012
83
12 nov. 2009 à 17:20
12 nov. 2009 à 17:20
il n' y a pas quelqu'un d'experimenter qui pourrais me repondre svp merci
adnanforum
Messages postés
204
Date d'inscription
samedi 24 janvier 2009
Statut
Membre
Dernière intervention
21 janvier 2010
38
12 nov. 2009 à 17:39
12 nov. 2009 à 17:39
o lieu de mettre sqrt tu devrer mettre le calcule.merci de pressicer devc++ ou codeblocks
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
skuti
Messages postés
53
Date d'inscription
dimanche 27 septembre 2009
Statut
Membre
Dernière intervention
29 janvier 2013
2
12 nov. 2009 à 17:53
12 nov. 2009 à 17:53
met ceci:
double resultatt = 0; int nombre = 0; scanf("%d", &nombre); resultatt = sqrt((double)nombre); printf("Racine carré de %d = %f ",nombre,resultatt);
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
12 nov. 2009 à 20:00
12 nov. 2009 à 20:00
resultatt = sqrt((double)nombre);
Le cast est inutile puisqu'implicite.
Cdlt
Le cast est inutile puisqu'implicite.
Cdlt
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
12 nov. 2009 à 19:59
12 nov. 2009 à 19:59
Salut,
Après relecture du programme, l'erreur vient de trois endroits.
scanf("%lf",&nombre);
printf("\nracine carre de %f = %f\n",nombre,resultatt);
Tu as mis des doubles en arguments, donc tu vas empiler 2*sizeof(double) dans la pile. La fonction printf va déchiffrer le pattern %d %d (que tu avais mis dans ton premier programme). Lors du premier %d, il va se référer aux premiers bits (première partie du double puisque le double est plus grand que l'integer), et le deuxième %d va se référer sur la suite (donc deuxième partie des bits). Et la deuxième partie est souvent à 0 puisque la précision est grande, tu vois 0 qui s'affiche.
Et enfin, attention, tu as mis return = 0; au lieu de return 0;
Cdlt
Après relecture du programme, l'erreur vient de trois endroits.
scanf("%lf",&nombre);
printf("\nracine carre de %f = %f\n",nombre,resultatt);
Tu as mis des doubles en arguments, donc tu vas empiler 2*sizeof(double) dans la pile. La fonction printf va déchiffrer le pattern %d %d (que tu avais mis dans ton premier programme). Lors du premier %d, il va se référer aux premiers bits (première partie du double puisque le double est plus grand que l'integer), et le deuxième %d va se référer sur la suite (donc deuxième partie des bits). Et la deuxième partie est souvent à 0 puisque la précision est grande, tu vois 0 qui s'affiche.
Et enfin, attention, tu as mis return = 0; au lieu de return 0;
Cdlt
skuti
Messages postés
53
Date d'inscription
dimanche 27 septembre 2009
Statut
Membre
Dernière intervention
29 janvier 2013
2
12 nov. 2009 à 20:06
12 nov. 2009 à 20:06
je ne suis pas d'accord avec vous puisqu'en fonction des logiciel il y a quelque bug.
Sous code bloc sa ne fonctionne pas toujours.
Comme j'ai pus le tester sur code blocks en mettant %lf partout et en declarant mes variables en double j'obtenais 0 a chaque fois.
C'est pour sa que j'ai posté ce code
Sous code bloc sa ne fonctionne pas toujours.
Comme j'ai pus le tester sur code blocks en mettant %lf partout et en declarant mes variables en double j'obtenais 0 a chaque fois.
C'est pour sa que j'ai posté ce code
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
12 nov. 2009 à 21:42
12 nov. 2009 à 21:42
Normal, l'erreur est situé comme je l'ai dit plus haut.
Dans certains cas effectivement il faut caster, mais celui-là n'en fait clairement pas partie.
Dans certains cas effectivement il faut caster, mais celui-là n'en fait clairement pas partie.
samar83
Messages postés
67
Date d'inscription
vendredi 26 octobre 2007
Statut
Membre
Dernière intervention
12 novembre 2009
2
12 nov. 2009 à 20:14
12 nov. 2009 à 20:14
bonsoir,
pourkoi mettre default au milieu de switch? essaye de le mettre en dernier lieu après case 5!
c-a-d: case 1: .........;
case 2:........;
case 3:..........;
case 4:.........;
case 5:..........;
default:...........;
pourkoi mettre default au milieu de switch? essaye de le mettre en dernier lieu après case 5!
c-a-d: case 1: .........;
case 2:........;
case 3:..........;
case 4:.........;
case 5:..........;
default:...........;
dialga08
Messages postés
443
Date d'inscription
mercredi 10 septembre 2008
Statut
Membre
Dernière intervention
5 février 2012
83
12 nov. 2009 à 20:37
12 nov. 2009 à 20:37
Met ceci: double resultatt = 0; int nombre = 0; scanf("%d", &nombre); resultatt = sqrt((double)nombre); printf("Racine carré de %d = %f ",nombre,resultatt);
quand je rentre "1"
il n'afiche que l'entier donc 1.00000000..
skuti
Messages postés
53
Date d'inscription
dimanche 27 septembre 2009
Statut
Membre
Dernière intervention
29 janvier 2013
2
12 nov. 2009 à 21:04
12 nov. 2009 à 21:04
Parceque racine carré de 1 egale 1 !!!
dialga08
Messages postés
443
Date d'inscription
mercredi 10 septembre 2008
Statut
Membre
Dernière intervention
5 février 2012
83
12 nov. 2009 à 22:53
12 nov. 2009 à 22:53
merci a tous pour m'avoir aider
racine carré de 1 = 1 lol
racine carré de 1 = 1 lol
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
12 nov. 2009 à 22:54
12 nov. 2009 à 22:54
Je retiens à rajouter que :
double resultatt = 0;
int nombre = 0;
scanf("%d", &nombre);
resultatt = sqrt((double)nombre);
printf("Racine carré de %d = %f ",nombre,resultatt);
Le cast de nombre en double est facultatif ;-))).
Cdlt
double resultatt = 0;
int nombre = 0;
scanf("%d", &nombre);
resultatt = sqrt((double)nombre);
printf("Racine carré de %d = %f ",nombre,resultatt);
Le cast de nombre en double est facultatif ;-))).
Cdlt
adnanforum
Messages postés
204
Date d'inscription
samedi 24 janvier 2009
Statut
Membre
Dernière intervention
21 janvier 2010
38
12 nov. 2009 à 22:55
12 nov. 2009 à 22:55
derien crane de cp
12 nov. 2009 à 07:11
Il faut plutôt utiliser %f ;-)))
cdlt