Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Empezando con bucles dentro de otros bucles, no se que hago mal!!!

Estas en el tema de Empezando con bucles dentro de otros bucles, no se que hago mal!!! en el foro de C/C++ en Foros del Web. Hola!!!! Tal y como viene diciendo el titulo, no sé que hago mal en los bucles que contienen otros bucles, pero el caso es que ...
  #1 (permalink)  
Antiguo 06/11/2013, 09:32
 
Fecha de Ingreso: octubre-2013
Mensajes: 7
Antigüedad: 7 años, 6 meses
Puntos: 0
Empezando con bucles dentro de otros bucles, no se que hago mal!!!

Hola!!!! Tal y como viene diciendo el titulo, no sé que hago mal en los bucles que contienen otros bucles, pero el caso es que solo atiende a uno...

Un ejemplo del pequeño programa con el que intento practicar

Código:
#include <stdio.h>

int main(void)


{

 int num=0, cont=0;



 while (cont < 8){


        while (num < 9){

        num++;

        printf ("%d", num);

    }

cont++;
printf("\n");
 }

return 0;


}

El caso es que me debería dar como resultado lo siquiente:

123456789
123456789
123456789
123456789
123456789
123456789
123456789
123456789

Pero sencillamente me lo hace una vez, tal que me queda:

123456789

Y ya, alguna idea de lo que pasa? un pequeña explicación me sería que gran ayuda!

Muchas gracias por su disposición a ayudar los demás, saludos.
  #2 (permalink)  
Antiguo 06/11/2013, 10:01
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 13 años, 4 meses
Puntos: 57
Respuesta: Empezando con bucles dentro de otros bucles, no se que hago mal!!!

Durante la primera pasada del ciclo anidado, estas incrementando la variable num, y se termina cuando num vale 10. Entonces se ejecuta el resto del codigo del primer while. Entonces incrementas cont, imprimes el salto de linea y se continua con la segunda pasada del ciclo anidado. Pero el problema es que num vale 10 (el valor que tiene despues de haber finalizdo la primera pasada) y obviamente no va a entrar al ciclo anidado ya que la condicion es num < 9
  #3 (permalink)  
Antiguo 06/11/2013, 10:16
 
Fecha de Ingreso: octubre-2013
Mensajes: 7
Antigüedad: 7 años, 6 meses
Puntos: 0
Respuesta: Empezando con bucles dentro de otros bucles, no se que hago mal!!!

Cita:
Iniciado por posman Ver Mensaje
Durante la primera pasada del ciclo anidado, estas incrementando la variable num, y se termina cuando num vale 10. Entonces se ejecuta el resto del codigo del primer while. Entonces incrementas cont, imprimes el salto de linea y se continua con la segunda pasada del ciclo anidado. Pero el problema es que num vale 10 (el valor que tiene despues de haber finalizdo la primera pasada) y obviamente no va a entrar al ciclo anidado ya que la condicion es num < 9
Vaya, muchas gracias! Lo he captado, si el buque anidado se cumple una vez en la segunda pasada este no "reinicializa" el contador si no lo pongo yo a cero.

El programa ya me funciona correctamente.

Así me ha quedado el codigo para los curiosos:

Código:
#include <stdio.h>

int main(void)


{

 int num=0, cont=0;



 while (cont < 8){
num = 0;

        while (num < 9){

        num++;

        printf ("%d", num);



    }
cont++;

printf("\n");
 }

return 0;


}
Muchas gracias por la explicación posman

Etiquetas: bucles, empezando, int, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:51.