La réponse à ce problème de devoirs de l'échantillon est « 1000000 », mais je ne comprends pas pourquoi:Pourquoi cette boucle à virgule flottante se termine-t-elle à 1 000 000?
Quelle est la sortie du code ci-dessous?
int main(void) {
float k = 1;
while (k != k + 1) {
k = k + 1;
}
printf(“%g”, k); // %g means output a floating point variable in decimal
}
Si le programme fonctionne indéfiniment, mais ne produit aucune sortie, écrire que la boucle sans réponse à la question. Tous les programmes se compilent et fonctionnent. Ils peuvent ou peuvent ne pas contenir d'erreurs graves, cependant. Vous devriez supposer que int est quatre octets. Vous devez supposer que float a l'équivalent de six chiffres décimaux de précision. Vous pouvez arrondir votre réponse à la puissance la plus proche de 10 (par exemple, vous pouvez dire 1 000 au lieu de 2 (c'est-à-dire 1024)).
Je ne comprends pas pourquoi la boucle se terminerait jamais.
est-ce un copier-coller d'un devoir ou d'une question de test? –
C'est définitivement les devoirs. –
Voilà les devoirs ... mais de toute façon, "INFINITE LOOP". – aviraldg