Posez votre question Signaler

Boucle infini [Résolu]

c1117 - Dernière réponse le 11 déc. 2008 à 13:04
Bonjour,
je comprends pas pourquoi sa fait une boucle infini et vous?
int main () {
double r=0.0
for (double i = 0 ; i !=1.0 ; i+=0.1 ) {
r = r+i;
}
return 0;
}
Lire la suite 

Boucle infini »

6 réponses
Réponse
+0
moins plus
Salut,
C'est normal, en fait la comparaison entre double ou float est délicate car approximée par des binaires en mémoire.
En fait en C, deux doubles sont égaux si leur différence est très faible (0.0001 par exemple).
Dans ton cas, tu peux faire encore plus simple, en mettant i<=1.0 à la place de i!=1.0 dans ta boucle for.
Cdlt
Ajouter un commentaire
Réponse
+0
moins plus
ça l'air drôle , ça doit être l'erreur sur la mesure
à la place != met < ou <= , enfin tu comprend
Ajouter un commentaire
Réponse
+0
moins plus
bonjour,
Mon C est loin, mais ça serait pas plutôt..
i=i+0,1
A+
fiddy - 11 déc. 2008 à 12:17
i+=0.1 signifie i=i+0.1...
lermite222 - 11 déc. 2008 à 12:25
Hum.. oui, comme j'ai dit, c'est loin tout ça.
A+
Ajouter un commentaire
Réponse
+0
moins plus
merci pour la reponse ;-)
Ajouter un commentaire
Ce document intitulé « boucle infini » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook