La racine carrée

Résolu/Fermé
LACHHABFADOUA Messages postés 23 Date d'inscription jeudi 11 juin 2020 Statut Membre Dernière intervention 7 juillet 2021 - 21 nov. 2020 à 16:07
LACHHABFADOUA Messages postés 23 Date d'inscription jeudi 11 juin 2020 Statut Membre Dernière intervention 7 juillet 2021 - 21 nov. 2020 à 16:26
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

M3NSONG3 Messages postés 615 Date d'inscription mardi 16 avril 2013 Statut Membre Dernière intervention 4 novembre 2021 162
Modifié le 21 nov. 2020 à 16:23
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
LACHHABFADOUA Messages postés 23 Date d'inscription jeudi 11 juin 2020 Statut Membre Dernière intervention 7 juillet 2021
21 nov. 2020 à 16:26
Thanks, it works
0