Problème Logarithme

Ella -  
 ouz -
Bonjour, j'ai un petit probkème.
Voila, j'ai un algo en C qui tourne très bien.
Seulement, je dois calculer le logarithme d'un résultat de ce programme et je sais qu'il faut utiliser le prototype : double log(double x).
Mais le probl-me c'est comment l'utiliser et où ?

3 réponses

Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Salut.
tu n'a pas besoin de metttre double log(double x)
la fonction est deja defini dans math.h !
double log(double x)
{double y=0;
y=log(x);
return(y);
}
cré forcement une erreur de segmentation, car tu fait une fonction défini de manière récursive sans point de sortie !
à chaque appel de log(x) tu appel log(x) qui appel log (x) qui .... (tu as compris?)
la solu de manu devrai fonctionner, si ce n'ai pas le cas, tu as un problème d'installation.
Pour le link avec l'option -lm c'est pas obligatoire : certain compilo le font par défaut, mais à mettre si ça ne compil pas sans.
1
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
je voi pas ou est le problème.
tu veux le log de x dans y :
y=log(x);
Rien de plus simple... Ou alors tu n'en dit pas assez
0
Ella
 
Non justement ca ne marche pas.

J'ai tenté de faire un petit programme pour avoir le log neperien d'un nombre et j'ai toujours le même message "Erreur de segmentation" a l'execution.

Voila le programme :
#include <math.h>
#include <stlib.h>
#include <stdio.h>

double log(double x);

int main ()
{double f=2;
double resultat = 0;

resultat = log(f);
}

double log(double x)
{double y=0;
y=log(x);

return(y);
}

Je ne comprends pas d'où vient le problème.
0
doc manu Messages postés 6 Statut Membre
 
Salut, essaie plutot :

#include <stdio.h>
#include <math.h>

int main()
{
  double a,b ;
  b = 2.;
  a = log(b);
  printf("le logarithme de %f vaut %f \n",b,a);
}


Il ne faut pas oublier de linker avec la lib math :
cc test.c -lm
0
ouz
 
C'est clair, rien à ajouté
0