La racine carrée

Résolu
LACHHABFADOUA Messages postés 24 Statut Membre -  
LACHHABFADOUA Messages postés 24 Statut Membre -
Bonjour, svp ou est l'erreur dans le code suivant ,car il ressemble logique ,ms la fonction rend 0
et merci d'avance.
#include<stdio.h>
#include<stdlib.h>

int racine_carre(int a)
{
int i,X=1;

for(i=1;i<=a;i++)
{
X=(1/2)*(X+(a/X));
}

return X;
}
int main()
{
int a,x;
printf("entrer un nombre positif : "); scanf("%d",&a);
x=racine_carre(a);
printf("racine carré de %d est %d",a,x);
}

Configuration: Windows / Chrome 86.0.4240.198

1 réponse

  1. M3NSONG3 Messages postés 670 Statut Membre 162
     
    Salut !

    Visiblement tu as un problème au niveau des types...
    Essaye comme ceci:
    int racine_carre(int a)
    {
     int i;
     float X = 1;
    
     for (i = 1; i <= a; i++)
      X = 0.5 * (X + (a / X));
    
     return X;
    }


    Tu auras probablement un warning au niveau du dépassement arithmétique...

    Mais ça devrait marcher.
    Si tu fais des calcules avec des int... Il te sort un résultat entier.

    0
    1. LACHHABFADOUA Messages postés 24 Statut Membre
       
      Thanks, it works
      0