Boucle infini
Résolu
c1117
-
c1117 -
c1117 -
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;
}
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;
}
Configuration: Linux Firefox 3.0.3
4 réponses
-
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 -
ça l'air drôle , ça doit être l'erreur sur la mesure
à la place != met < ou <= , enfin tu comprend -
bonjour,
Mon C est loin, mais ça serait pas plutôt..
i=i+0,1
A+ -