Alguien por favor me puede explicar por qué este código imprime el cuadrado con asteriscos y lo de dentro está vacío?
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i, j, filas ,columnas;
printf("Introduzca el numero de filas: ");
fflush(stdout);
if (scanf("%d", &filas) != 1)
return EXIT_FAILURE;
printf("Introduzca el numero de columnas: ");
fflush(stdout);
if (scanf("%d",&columnas) != 1)
return EXIT_FAILURE;
for (i = 1; i <= filas; i++){
for(j = 1; j <= columnas ; j++)
if (i == 1 || i == filas || j == 1 || j == columnas)
printf("*");
else
printf(" ");
printf("n");
}
system ("PAUSE");
return 0;
}
He encontrado el código por internet y no consigo comprender el funcionamiento de los 2 for seguidos. No veo por qué el for hace que en la primera fila todo sean asteriscos, en las siguientes solo haya asteriscos en los laterales del cuadrado y lo de dentro esté vacío y en la ultima fila vuelva a aparecer toda la fila con asteriscos. Tampoco comprendo por qué filas pone asteriscos en filas y columnas pone asteriscos en columnas. Se agradecería una explicación del funcionamiento de estos 2 for juntos por pasos con algún ejemplo práctico que aclare la situación. Gracias!!!