Probleme avec un programme
Bonjour je bloque sur un exercice en programmation en C voici l'enoncé:
Pour calculer la racine carree d’un nombre a, il est possible
d’utiliser l’algorithme de Heron d’Alexandrie. Cette methode est la suivante.
Supposons que l’on cherche la racine x de a (x2 = a). Nous avons donc
2x2 = x2 + a, on en deduit 2x = x + a/x . Et finalement, on trouve que x est
solution de x = x/2 + a/2x . Nous pouvons donc construire la suite suivante :
x0 = a
xi+1 = xi/2 + a/2xi
Ecrire une fonction prenant en parametre un reel a et un entier n, qui calcule
et affiche les n premiers termes de la suite. On affichera egalement la racine
carree de a a titre de comparaison (on utilisera pour cela la fonction sqrt de
la bibliotheque math.h).
Voici mon programme qui ne marche pas, je ne vois pas ou est mon erreur:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void Heron_Alex ( float a, int n); //Prototype de la fonction Heron_Alex
int main()
{
int n = 0, compteur;
float a = 0, racine = 0, c;
printf("Racine carree d'un nombre par l'algorithme de Heron d'Alexandrie (exercice 1): \n\n\n");
printf("Valeur de a: ");
scanf("%f", &a);
printf("\n");
printf("Valeur de n: ");
scanf("%d",& n);
printf("\n\n");
Heron_Alex(a,n); //appel de la fonction Heron_Alex
racine = sqrt(a); //fonction sqrt(racine carree) présente dans math.h
printf("la racine carre par la fonction sqrt vaut %lf\n", racine);
return 0;
}
void Heron_Alex (float a, int n) //fonction Heron_Alext
{
int compteur = 1;
float c = 1;
printf("Les %d premieres valeurs sont:\n",n);
while (compteur <= n)
{
c = 1/2 * (c + a / c);
printf("%f\n", c);
compteur++;
}
} |