Duda con sentencia anidada en un array bidimensional(Solucionado)

Iniciado por The Last Hero, 15 Mayo 2011, 17:59 PM

0 Miembros y 1 Visitante están viendo este tema.

The Last Hero

Hola a todos,

Resulta que estaba mirando un ejercicio de un tutorial que sigo y me saltó una enorme duda,pego el código:

int numeros [10][5];
int fila,columna;
for(fila=0; fila<10;fila++)
for(columna=0;columna<5;columna++)
printf("%d", &numeros[fila][columna];



Mi dudda es,empieza en el primer for con columna=0,y continua con el segundo for.Ahí va incrementando el valor columna hasta que el valor sea menos de 5,entonces vuelve al primer for y suma uno a la columna pero...¿cuando suma ese 1 a la columna se vuelve a restaurar el segundo for?Porque supuestamente ya se habia llenado...¿entonces cuando la columna llega a 4 y suma uno a fila...se restaura el segundo for para hacer exactamente lo mismo partiendo desde 0 pero con la fila 1?

Espero que me hayan entendido porque creo que no me exprese muy bien  :xD

Bueno un saludo y gracias por adelantado.

satu

Hola

Así es, cuando termina el for de dentro e incrementa el de fuera se vuelve a ejecutar el de dentro entero, es decir, inicializando la variable "columna" a cero y haciendo todo el bucle for de nuevo. Eso pasará las 10 veces que se ejecute el for más externo

Saludos
Breakbeat como forma de vida

Samael.Black

Cita de: The Last Hero en 15 Mayo 2011, 17:59 PM
Hola a todos,

Resulta que estaba mirando un ejercicio de un tutorial que sigo y me saltó una enorme duda,pego el código:

int numeros [10][5];
int fila,columna;
for(fila=0; fila<10;fila++)
for(columna=0;columna<5;columna++)
printf("%d", &numeros[fila][columna];



Mi dudda es,empieza en el primer for con columna=0,y continua con el segundo for.Ahí va incrementando el valor columna hasta que el valor sea menos de 5,entonces vuelve al primer for y suma uno a la columna pero...¿cuando suma ese 1 a la columna se vuelve a restaurar el segundo for?Porque supuestamente ya se habia llenado...¿entonces cuando la columna llega a 4 y suma uno a fila...se restaura el segundo for para hacer exactamente lo mismo partiendo desde 0 pero con la fila 1?

Espero que me hayan entendido porque creo que no me exprese muy bien  :xD

Bueno un saludo y gracias por adelantado.
no entendí bien lo que quieres decir pero si es como funcionan los for es sencillo... analicemos... el primer for son las filas... entonces cuando empieza el primer for le dices al copilador que estará posicionado en la fila 0 de la matriz, (osea no ara nada la primera vez que lea el for mas que sumar 1 a "fila"), entonces pasara al segundo for el cual se encarga de las columnas este lo que ara, es imprimir 5 veces y cuando imprima 5 veces se supone que dará un salto de linea, en el caso de tu for no lo da ya que lo has escrito mal... primero no esta anidado pues no estas usando las corcheas  "{" "}" y segundo el primer for al final debe de llevar un salto de linea... el código quedaría así:

int numeros [10][5];
int fila,columna;
for(fila=0; fila<10;fila++)
{
     for(columna=0;columna<5;columna++)
    {
          printf("%d", &numeros[fila][columna];
     }
     printf("\n");
}


No recuerdo si ha si se da un salto de linea, ya que no suelo usar mucho la funcion printf... pero creo que ya es un poco mas entendible...

espero te ayude suerte...

The Last Hero

Gracias a ambos por vuestras respuestas,ya me ha quedado todo claro  ;-)

Un saludo y gracias de nuevo