La racine carrée [Résolu]

Signaler
Messages postés
3
Date d'inscription
jeudi 11 juin 2020
Statut
Membre
Dernière intervention
21 novembre 2020
-
Messages postés
3
Date d'inscription
jeudi 11 juin 2020
Statut
Membre
Dernière intervention
21 novembre 2020
-
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
565
Date d'inscription
mardi 16 avril 2013
Statut
Membre
Dernière intervention
21 novembre 2020
116
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
3
Date d'inscription
jeudi 11 juin 2020
Statut
Membre
Dernière intervention
21 novembre 2020

Thanks, it works