librairie math.h [linux] - C - Programmation
Marsh Posté le 24-01-2005 à 20:03:00
c'est pas plutot sqrt ??
Marsh Posté le 24-01-2005 à 20:03:25
NAME |
Comme dit le man, "Link with -lm".
Marsh Posté le 24-01-2005 à 20:13:54
sqrt powa, tgmath de C99 faisant tout le travail (pas la peine d'avoir 1 nom différent par fonction)
Marsh Posté le 24-01-2005 à 20:35:12
Merci, mais comment le faire fonctionner je me prend la tete pour le faire fonctionner, et comme mon prof aime pas linux, il n'a pas pu m'aider ..., si voulez bien jetter un oeil sur mon programe
Je doit faire un programe qui calcul une equation du second degrée, avec DELTA :
#include <stdio.h>
#include <math.h>
main()
{
int a,b,c;
float x,x1,x2,delt;
float sqrt;
printf("saisir les reelles a,b,c" );
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
delt=((b*b)-4*(a*c));
if(delt>0)
{
x1=-b-sqrt(delt)/(2*a);
x2=-b+sqrt(delt)/(2*a);
printf("delta= %f\n",delt);
printf("x1= %f\n",x1);
printf("x2= %f\n",x2);
}
if(delt=0)
{
x=(-b/2*a)
printf("delta= %f\n",delt);
printf("x= %f\n",x);
}
else
{
printf("pas de solution" );
}
}
MERCI !!!
Marsh Posté le 24-01-2005 à 21:01:34
Comme ecrit dans mon post c'est un programme qui calcul les equations du second degré, je voudrais savoir coment emplyer la fonction SQRT, merci
Marsh Posté le 24-01-2005 à 21:10:24
tiens j'avais pas ... t'as oublié de déclaré 'int printf;' comme variable
Marsh Posté le 24-01-2005 à 22:46:24
Atomos a écrit : et comme mon prof aime pas linux, il n'a pas pu m'aider ..., |
Rien à voir avec Linux, c'est du code standard...
Citation : si voulez bien jetter un oeil sur mon programe |
[C99] main() doit retourner le type int explicitement.
Citation : |
Les calculs sont plus précis avec le type 'double'
Citation : |
Euh, non. La fonction sqrt() est déclarée dans math.h. Mieux vaut éviter les conflits!
Citation : |
Manque un espace (lisibilité) et un fflush (stdout) (pas de '\n')
Citation : |
Peu de gens savent utiliser *scanf() correctement (tape 'a' pour voir...)
Les autres utilisent fgets() et la fonction de conversion qui va bien.
http://mapage.noos.fr/emdel/notes.htm#saisie
Citation : |
La logique est fausse. (manque un else)
Citation : |
La syntaxe est fausse. ('==' et non '=')
Citation : |
La syntaxe est fausse. (manque un ; ) C'est dur à voir ça ?
Citation : |
manque un \n.
Citation : |
Il manque un
return 0;
Citation : |
Marsh Posté le 24-01-2005 à 22:52:49
En vrac :
int main(void) au lieu de main. Rajoutes return 0; à la fin du main.
Code :
|
Il manque un ;
Code :
|
C'est == et non =
Code :
|
Et vires ca
P.S. Tu le compiles ton code ??
Si oui regardes les warnings
Edit : Emmanuel tu m'as grillé mais pas sur tout
Marsh Posté le 25-01-2005 à 00:21:13
à la compilation il faut que tu indique que tu as besoin de la lib math :
gcc -Wall -lm -fichier.c
on avait eu ce probléme en tp, il fallait indiquer à gcc d'utiliser la lib bien qu'elle soit en include
Marsh Posté le 24-01-2005 à 20:01:08
Bonjour, j'ai un petit probleme, je souhaite utiliser la fonction sqr, ou sqrf sous anjura, le probleme etant que je ne trouve pas dans quelle librairie elle se situe, sous windows elle se trouve dans "math.h", aperement, la non, si quelqu'un peut m'aider
Merci d'avance !!!