Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#1 Le 29/06/2013, à 23:38

bouabba

probleme

bonjours
j'ai un probleme lorsque je compile le prog suivant:
il m'affiche undefined reference to 'sqrt'

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
main()
{
                     /* Pour ne pas perdre de précision lors de la division, */
                     /* déclarons P comme rationnel. */
   int A, B, C;
   float P;
   printf("Introduisez les valeurs pour A, B et C : ");
   scanf("%d %d %d", &A, &B, &C);
                     /* En forçant la conversion de A, les autres opérandes */
                     /* sont converties automatiquement. */
   P=((float)A+B+C)/2;
   printf("Surface du triangle S = %f\n",sqrt(P*(P-A)*(P-B)*(P-C)));
    return 0;
}
il m'affiche undefined reference to 'sqrt'
merci de m'aider svp

Hors ligne

#2 Le 30/06/2013, à 07:53

Shanx

Re : probleme

Salut

Là, tu as deux problèmes :
  - tu as mis sqrt alors qu’il aurait fallut mettre sqrtf étant donné que tu veux un float
  - et tu n’as pas mis les bonnes options pour la compilation. Tu utilises probablement gcc pour celle-ci, et il faut que tu ajoutes l’option lm. Par exemple, si ton code s’appelle surface.c, tu devrais utiliser cette commande pour compiler :

gcc surface.c -o surface -lm

Sinon, quelques remarques pour la prochaine fois :
  - pense à mettre un titre plus explicite (par exemple “problème avec sqrt en C”)
  - utilise les balises code (ce symbole au dessus de la zone de texte : bt_pre.png)
  - et surtout, pense à utiliser la fonction man. La commande suivante aurait répondu à toutes tes questions :

man sqrt

Dernière modification par Shanx (Le 30/06/2013, à 07:54)


« En vérité, je ne voyage pas, moi, pour atteindre un endroit précis, mais pour marcher : simple plaisir de voyager. » R. L. Stevenson
--
Blog et randos

En ligne

#3 Le 01/07/2013, à 15:43

bouabba

Re : probleme

merci pour votre reponse shanx

Hors ligne