Algorithme qui calcule la racine carré d'un nombre

Ahb -  
 Ahb -
Salut

J'ai crée cet algorithme en langage C qui calcule la racine carré d'un nombre donné, il arrive a le trouver rapidement, mais le problème est que quand on lui entre un nombre trop grand (>1 000 000), les dernières décimales sont fausses

#include<stdio.h>
#include<stdlib.h>
int main ()
{
float x, y=1, p, N, a;
printf("x = ");
scanf("%f", &x);
if(x>=1)
{
p=1;
while(y*y<=x)
{
while(y*y<=x)
{
a=y;
y=y+p;
if(y==a)
break;
}
if(y==a)
break;
y=a;
p=p/10;
}
}
else
{
p=0.1;
while(y*y>=x)
{
while(y*y>=x)
{
a=y;
y=y-p;
if(y==a)
break;
}
if(y==a)
break;
y=a;
p=p/10;
}
}
printf("y = %f", y);
return 0;
}

Il est ou le problème ?

3 réponses

  1. Pierre1310 Messages postés 8854 Statut Membre 652
     
    Bonsoir,

    racine en C :

    sqrt(Ta_variable);

    a +
    3
    1. Ahb
       
      Merci

      Mais je veux développer ma propre fonction
      Vous allez me dire que c'est inutile
      Mais ça m'aide a progresser en algorithmique
      0
    2. Ahb
       
      ?
      0