je suis en train d'essayer de programmer le calcul d'une racine carrée approché au moyen de l'algorithme de Heron d'Alexandrie en C, le tout en récursif.
J'ai beau me creusé la tête depuis quelques heures le seul code que j'arrive à trouver est celui-ci dessous qui, comme vous vous en doutez, ne marche pas. Je me sis donc résolut à venir demander de l'aide ici, mais aussi et surtout des explication et aide pour que je puisse me débrouiller à l'avenir.
Merci d'avance.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
float racine_carree(int a, int n)
{
float x,b,z;
x=1;
while((x*x)<a)
{
x=x+1;
}
b=x;
if((x*x)==a)
{
return x;
}
else
{
if(n==0)
{
return a;
}
else
{
if(n==1)
{
x=(1/2)*(x+(a/x));
return x;
}
else
{
z=(1/2)*((racine_carree(b,n-1))+(a/(racine_carree(b,n-1))));
printf("Voila x= %0.4f \t pour l'etape n= %d \n",b,n);
return z;
}
}
}
}
int main(){
int a,n;
float x;
printf("rentrez le nombre :");
scanf("%d",&a);
printf("\n rentrez le nombre d'iteration :");
scanf("%d",&n);
x=racine_carree(a,n);
printf("voila la racine carree %0.4f \t",x);
printf("la racine carree trouvee par sqrt est: %f",sqrt(a));
}