Fonction floor()

Résolu
Pimousse -  
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, voila j'ai un probleme lorsque je compile mon programme, la fonction floor() me renvoie "inf". Ca fait une heure que je cherche, je desesspere. Voici mon programme, ne faites pas attention à la boucle, ce n'est pas encore terminé....


void dichotomie(double a,double b, double precision)
{
double c,e;
int i=0;
double p;

p= floor(sqrt(2)/precision); // avec precision=0,1

printf("%lf \n\n ",p); // renvoi inf alors que je devrais avoir 14

do
{

c = (a+b)/2;
if( f(a)*f(c) <0 )
{

b=c; i++;

}

else
{
printf("impossible \n");
break;
}

e=floor (c/precision);



}while( e!=p);

printf("Nombre itérations : %d racine 2= %lf \n", i,c);

}
A voir également:

2 réponses

Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663
 
si tu as eu Inf c'est juste que tu as dû faire une division par zéro avec des flottants.

En fait je me dis que tu as dû rentrer comme param de précision "0,1" au lieu de "0.1", non ?
ton 0,1 entré au clavier sera interprété comme 0. Le séparateur de décimales c'est le point en anglais, et donc en général dans la plupart des langages.
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Le mieux pour éviter ce problème, c'est qu'au moment de la saisie de la précision, ton programme remplace les virgules par des points ;)
0