La racine carrée [Résolu]

Signaler
Messages postés
12
Date d'inscription
jeudi 11 juin 2020
Statut
Membre
Dernière intervention
10 mars 2021
-
Messages postés
12
Date d'inscription
jeudi 11 juin 2020
Statut
Membre
Dernière intervention
10 mars 2021
-
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

Messages postés
588
Date d'inscription
mardi 16 avril 2013
Statut
Membre
Dernière intervention
26 mars 2021
132
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.

Messages postés
12
Date d'inscription
jeudi 11 juin 2020
Statut
Membre
Dernière intervention
10 mars 2021

Thanks, it works