BiHiLe 28/11/2003 à 21:43
[pre]
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
float my_sqrt(float a)
{
float n = a;
float old = -1;
while(old != n) {
old = n;
n = 0.5 * (n + (a/n));
}
return n;
}
int main()
{
for(n= 1000; n<10000000; n++)
{
if((float)my_sqrt((float)n) != (float)sqrt((float)n))
printf("%d - ", n);
}
return 0;
}
[pre]
Chez moi j'obtiens aucun affichage, donc ça veut dire qu'il n'y a pas de différences. Enfin en enlevant le cast en float dans le test d'égalité, j'obtiens pas pareil par contre.