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 : Sélectionner tout - Visualiser dans une fenêtre à part
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++;
    }
}