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

  • Votes
  • Date
  • Date décroissante
  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"
    1. Modérateur
      Pareil ^^
      Il faudrait voir le nouveau code.
    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.
    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
    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)
    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.
  2. 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.
    1. merci, j'avais aussi oublié le & avant n dans le scanf mais c'est bon, merci, ça a compilé.
      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.