Pbleme sqrt en c aidez moi svp

Résolu/Fermé
rimounatn Messages postés 93 Date d'inscription jeudi 24 décembre 2009 Statut Membre Dernière intervention 7 septembre 2010 - 3 janv. 2010 à 18:39
rimounatn Messages postés 93 Date d'inscription jeudi 24 décembre 2009 Statut Membre Dernière intervention 7 septembre 2010 - 4 janv. 2010 à 23:39
Bonjour,
j'ai un probleme avec la fonction sqrt voici l'erreur que j'ai :
programme.c:(.text+0x4fd): In function `main': 
: undefined reference to `sqrt' 
collect2: ld a retourné 1 code d'état d'exécution

je sais que cette fonction doit recevoir un de ces types: float, double et puis que j'ai des variables en int , voici exple:
int x;
float b ;
b=sqrt (float(x));
mais ca ne fonctionne pas meme pour le double et j'ai tjr le mm message d'erreur SVP , aidez moi

4 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
3 janv. 2010 à 23:19
Salut,
Attention sqrt retourne un double et prend un double en paramètre.
De plus pour convertir un entier en float, il ne s'agit pas de la fonction float() mais d'un cast.
Dans ce cas, pas besoin puisqu'il s'agit d'un cast implicite.
Par exemple :
double rac;
int a=5;
rac=sqrt(a);

Enfin, lorsque tu compiles, il ne faut pas oublier de linker la bibliothèque math.
La procédure à suivre dépend du compilateur.
Pour gcc : gcc -c toto.c -o toto -lm

Cdlt
1
apprenti_nformaticien Messages postés 45 Date d'inscription vendredi 1 janvier 2010 Statut Membre Dernière intervention 6 février 2010 5
3 janv. 2010 à 19:28
Il faut inclure #include<math.h>
0
rimounatn Messages postés 93 Date d'inscription jeudi 24 décembre 2009 Statut Membre Dernière intervention 7 septembre 2010 15
3 janv. 2010 à 23:06
g déja mis "#include<math.h>", mais ca ne fonctionne pas :( et g la mm erreur
0
rimounatn Messages postés 93 Date d'inscription jeudi 24 décembre 2009 Statut Membre Dernière intervention 7 septembre 2010 15
4 janv. 2010 à 23:39
thx fiddy , c bon ca marche. :)))))
0