'c' je vois pas mon erreur?

Discutez d'informatique ici !
Avatar de l’utilisateur
raito123
Habitué(e)
Messages: 2102
Enregistré le: 04 Nov 2007, 02:29

'c' je vois pas mon erreur?

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 :++:

Avatar de l’utilisateur
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

Avatar de l’utilisateur
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é

Dominique Lefebvre
Membre Légendaire
Messages: 8005
Enregistré le: 03 Déc 2005, 12:00

par Dominique Lefebvre » 01 Jan 2008, 22:28

printf("%f\n", resultat);

ça devrait le faire....

Avatar de l’utilisateur
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".

Avatar de l’utilisateur
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é

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite