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;
}
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
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