'c' je vois pas mon erreur?
Discutez d'informatique ici !
-
raito123
- Habitué(e)
- Messages: 2102
- Enregistré le: 04 Nov 2007, 02:29
-
par raito123 » 01 Jan 2008, 21:58
Bonsoir,
ben voilà un code :doh: facile en 'c'.
je sais pas pourquoi ça marche pas : ça affiche toujours la valeur 'faux' ou '0' à la place du racine carré :hein: :hein:
- Code: Tout sélectionner
#include
#include
#include
int main(int argc, char argv[])
{
double nombre = 0, resultat = 0;
printf("le nombre : ");
scanf("%ld", &nombre);
resultat = sqrt(nombre);
printf("%ld\n", resultat);
getchar();
system("pause");
return 0;
}
bah voilà si quelqu'un voit quelques chose???
merci d'avance!!
Les multiples ne doivent pas être utilisés sans nécessité
-
lapras
- Membre Transcendant
- Messages: 3664
- Enregistré le: 01 Jan 2007, 12:00
-
par lapras » 01 Jan 2008, 22:06
Affiche un double donc enleve le %ld :++:
-
raito123
- Habitué(e)
- Messages: 2102
- Enregistré le: 04 Nov 2007, 02:29
-
par raito123 » 01 Jan 2008, 22:12
lapras a écrit:Affiche un double donc enleve le %ld :++:
Re lapras :++: ,
je n'ai pas compris ce que tu veux dire par là!!!!(j'ai pas compris^^)
Si j'enleve le %ld ça ne va rien afficher, non?
Les multiples ne doivent pas être utilisés sans nécessité
-
lapras
- Membre Transcendant
- Messages: 3664
- Enregistré le: 01 Jan 2007, 12:00
-
par lapras » 01 Jan 2008, 22:19
en fait je voulais dire que resultat n'est pas un entier, il faut utiliser le sybole pour afficher les doubles et non le symbole %ld.
je me rappelle plus a quoi correspond le symbole d'affichage d'un double
-
raito123
- Habitué(e)
- Messages: 2102
- Enregistré le: 04 Nov 2007, 02:29
-
par raito123 » 01 Jan 2008, 22:27
lapras a écrit:en fait je voulais dire que resultat n'est pas un entier, il faut utiliser le sybole pour afficher les doubles et non le symbole %ld.
je me rappelle plus a quoi correspond le symbole d'affichage d'un double
Oui, j'avais pas fait attention c'est avec %lf
bonne nuit
Les multiples ne doivent pas être utilisés sans nécessité
par Dominique Lefebvre » 01 Jan 2008, 22:28
printf("%f\n", resultat);
ça devrait le faire....
-
raito123
- Habitué(e)
- Messages: 2102
- Enregistré le: 04 Nov 2007, 02:29
-
par raito123 » 01 Jan 2008, 22:44
Dominique Lefebvre a écrit:printf("%f\n", resultat);
ça devrait le faire....
Non ça donne pas il faut ajouter un 'l' qui donne '%lf' :++:
Les multiples ne doivent pas être utilisés sans nécessité
-
Patastronch
- Membre Irrationnel
- Messages: 1345
- Enregistré le: 22 Aoû 2005, 23:53
-
par Patastronch » 01 Jan 2008, 23:25
raito123 a écrit:Non ça donne pas il faut ajouter un 'l' qui donne '%lf' :++:
Désolé quand j'entends une annerie je me dois de reagir. Petit rappel de cours :
- Code: Tout sélectionner
[B]TYPE :[/B]
d/i entier décimal signé
o entier octal non signé
u entier décimal non signé
x entier hexadécimal non signé
X entier hexadécimal non signé en majuscules
f réel de la forme [-]dddd.ddd
e réel de la forme [-]d.ddd e [+/-]ddd
E comme e mais l'exposant est la lettre E
g format e ou f suivant la précision
G comme g mais l'exposant est la lettre E
c caractère
s affiche les caractères jusqu'au caractère nul '\0'
p pointeur
[B]MODIFICATEUR :[/B]
h un entier de type short (d,i,o,u,x,X)
l un entier de type long (d,i,o,u,x,X)
L un réel de type long double (e,E,f,g,G)
Ne pas confondre les 2 merci, de plus la présence d'un modificateur n'est pas obligatoire, donc %f fait tres bien l'affaire.
Dans tous les cas pour un réel c'est L le modificateur et non l. Mais en aucun cas "il faut rajouter un l".
-
raito123
- Habitué(e)
- Messages: 2102
- Enregistré le: 04 Nov 2007, 02:29
-
par raito123 » 01 Jan 2008, 23:37
Patastronch a écrit:j'entends une annerie
Ah bon une annerie !!!
dsl je ne savais pas !!!
en tout cas j'ai essayé avec '%f' mais ça n'as pas marché!!!
enfin si c'est une annerie bah je te dit que je viens de prendre mes premiers cours sur c donc normal!!!
ps=merci pour le petit cours
TYPE :
d/i entier décimal signé
o entier octal non signé
u entier décimal non signé
x entier hexadécimal non signé
X entier hexadécimal non signé en majuscules
f réel de la forme [-]dddd.ddd
e réel de la forme [-]d.ddd e [+/-]ddd
E comme e mais l'exposant est la lettre E
g format e ou f suivant la précision
G comme g mais l'exposant est la lettre E
c caractère
s affiche les caractères jusqu'au caractère nul '\0'
p pointeur
MODIFICATEUR :
h un entier de type short (d,i,o,u,x,X)
l un entier de type long (d,i,o,u,x,X)
L un réel de type long double (e,E,f,g,G)
[/CODE]
Les multiples ne doivent pas être utilisés sans nécessité
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité