Probleme de compilation pour du cun programme

Bonjour, j'ai un probleme de compilation sur mon programme nommé sqrt.c, j'ai écrit ceci:

#include <stdio.h>
int main();
{
float n;int i=0; float a=1;
printf("De quel nombre voulez-vous la racine\?\n");
scanf("%f",n);
while (i!=10)
{
a=0.5*(a+n/a);
i++;
}
printf("\nLa racine de %f vaut %f",n,a);
return 0;
}

Et, lors de la compilation, il est écrit:
sqrt.c:3:1: error: expected identifier or '(' before '{' token

Pourriez-vous m'aider, merci beaucoup.

5 réponses

  1. simple, enlève le point virgule a coté de "main()" ;-)
    au passage, evite de déclaré un int entre des float ... le mieux étant de déclaré les variables sur plusieurs lignes.
    0
    1. Modérateur
      Enlève le ; après main()
      0
      1. presque en même temps \o/
        0
    2. merci, j'avais aussi oublié le & avant n dans le scanf mais c'est bon, merci, ça a compilé.
      0
      1. outch, autre probleme, maintenant, en executant, je lui propose un nombre, mais quand j'appuie sur entrée, il va juste à la ligne, que faire, merci.
        0
        1. humm ... j'ai recopié le code, corrgé le ";" et le & et compilé, chez moi, aucun soucis ! il affiche bien la racine. pas de simple "retour a la ligne"
          0
          1. Modérateur
            Pareil ^^
            Il faudrait voir le nouveau code.
            0
          2. non, c'est bon, je sais pasce qui se passait, mais mon ordi a redémarré sans crier gare, c'était donc un bug, ça marche maintenant.
            0
          3. merci à tous. le double est fait expres. en fait, pour calculer, j'utilise l'alhorithme de babylone 10 fois et ma précision est de 10^-100 ceci vaut pour des nombres positifs
            0
          4. Modérateur
            Attention avec les confusions, en utilisant des double les précisions dépendent de la valeur.
            Si ta valeur est comprise entre 2^(N-1) et 2^N, ta précision est à peu près de 2^(N-53)
            0
          5. je le sais, c'est pourquoi je viens d'augmenter la récursivité de 40, pour 50 à présent car à temps de calcul équivalent, j'ai une précision de plus de 0.5^(2^(50+1)-1) pour racine de 2, donc casi de meme pour les autres.
            0