Este sitio web usa cookies de terceros para analizar el tráfico y personalizar los anuncios. Si no está de acuerdo, abandone el sitio y no siga navegando por él. ×


3.9. Ejercicios resueltos y propuestos sobre bucles

3.9.1. Ejercicios resueltos sobre bucles

¿Qué escribiría en pantalla este fragmento de código?

for (i=1; i<4; i++) printf("%d", i);

Respuesta: los números del 1 al 3 (se empieza en 1 y se repite mientras sea menor que 4).

¿Qué escribiría en pantalla este fragmento de código?

for (i=1; i>4; i++) printf("%d", i);

Respuesta: no escribiría nada, porque la condición es falsa desde el primer momento.

¿Qué escribiría en pantalla este fragmento de código?

for (i=1; i<=4; i++); printf("%d", i);

Respuesta: escribe un 5, porque hay un punto y coma después del “for”, de modo que repite cuatro veces una orden vacía, y cuando termina, “i” ya tiene el valor 5.

¿Qué escribiría en pantalla este fragmento de código?

for (i=1; i<4; ) printf("%d", i);

Respuesta: escribe “1” continuamente, porque no aumentamos el valor de “i”, luego nunca se llegará a cumplir la condición de salida.

¿Qué escribiría en pantalla este fragmento de código?

for (i=1; ; i++) printf("%d", i);

Respuesta: escribe números continuamente, comenzando en uno y aumentando una unidad en cada pasada, pero sin terminar nunca.

¿Qué escribiría en pantalla este fragmento de código?

for ( i= 0 ; i<= 4 ; i++) {
    if ( i == 2 ) continue ; printf( "%d " , i); }

Respuesta: escribe los números del 0 al 4, excepto el 2.

¿Qué escribiría en pantalla este fragmento de código?

for ( i= 0 ; i<= 4 ; i++) {
    if ( i == 2 ) break ; printf( "%d " , i); }

Respuesta: escribe los números 0 y 1 (interruumpe en el 2).

¿Qué escribiría en pantalla este fragmento de código?

for ( i= 0 ; i<= 4 ; i++) {
    if ( i == 10 ) continue ; printf( "%d " , i); }

Respuesta: escribe los números del 0 al 4, porque la condición del “continue” nunca se llega a dar.

¿Qué escribiría en pantalla este fragmento de código?

for ( i= 0 ; i <= 4 ; i++) 
    if ( i == 2 ) continue ; printf( "%d " , i);

Respuesta: escribe 5, porque no hay llaves tras el “for”, luego sólo se repite la orden “if”.

3.9.2. Ejercicios propuestos finales sobre bucles

Ejercicio propuesto 3.9.1: Crea un programa que muestre los números del 1 al 5 de tres formas distintas: primero con "for", luego con "while" y finalmente con "do-while".
Ejercicio propuesto 3.9.2: Crea un programa que muestre una cuenta atrás (3 2 1 0) desde el número que introduzca el usuario hasta cero. Ese número debe estar entre 1 y 10 (y el programa debe comprobar que realmente lo está, y volverlo a pedir tantas veces como sea necesario, en caso de que no sea así).
Ejercicio propuesto 3.9.3: Haz un programa que dé al usuario la oportunidad de adivinar un número del 1 al 100 (prefijado en el programa) en un máximo de 6 intentos. En cada pasada deberá indicarle si se ha pasado o se ha quedado corto. El programa terminará cuando acierte, incluso si utiliza menos de esos 6 intentos.
Ejercicio propuesto 3.9.4: Crea un programa que diga qué divisores tiene un número introducido por el usuario. Por ejemplo, para el número 16, la respuesta será 1 2 4 8 16
Ejercicio propuesto 3.9.5: Crea un programa que diga cuántos divisores tiene un número introducido por el usuario. Por ejemplo, para el número 16, la respuesta será 5
Ejercicio propuesto 3.9.6: Prepara un programa que descomponga un número (que teclee el usuario) como producto de sus factores primos. Por ejemplo, 60 = 2 • 2 • 3 • 5 (pista: como primera aproximación, puedes escribir siempre un "punto" después de cada número y luego terminar con la cifra uno, así: 60 = 2 • 2 • 3 • 5 • 1; cuando lo consigas, piensa cómo harías para eliminar ese "• 1" del final).