¿Cuántas líneas de salida produce el siguiente código C?
#include<stdio.h> float i=2.0; float j=1.0; float sum = 0.0; main() { while (i/j > 0.001) { j+=j; sum=sum+(i/j); printf("%f\n", sum); } }
(A) 8
(B) 9
(C) 10
(D) 11
Respuesta: (D)
Explicación: Dado, i = 2.0 y j = 1.0.
Dado que «i» no cambia, para satisfacer la condición:
i/j > 0.001 → 2.0/j > 0.001 → 2.0/0.001 > j → 2000 > j
El valor de «j» debe ser inferior a 2000 para satisfacer la condición dada. El valor de «j» aumenta en potencia de 2, es decir, 2 n . Asi que,
2n > 2000 → n > 10.9657 → n = 11
Entonces, después de la línea 11, el ciclo while terminará.
La salida real es:
1.000000 1.500000 1.750000 1.875000 1.937500 1.968750 1.984375 1.992188 1.996094 1.998047 1.999023
Estos son un total de 11 líneas.
Entonces, la opción (D) es correcta.
Cuestionario de esta pregunta
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA