Fonction floor()
Résolu
Pimousse
-
Reivax962 Messages postés 3742 Statut Membre -
Reivax962 Messages postés 3742 Statut Membre -
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);
}
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:
- Fonction floor()
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction somme excel - Guide
2 réponses
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.
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.