Matriz Caracol o Espiral
#include <stdio.h>
int main (void)
{
unsigned short fila, columna ;
printf ("Cantidad de filas:");
fila=13;
printf("%d\t",fila);
printf("\nCantidad de columnas: ");
columna=13;
printf("%d\t",columna);
int matriz[fila][columna];
void GenerarMatriz (unsigned short, unsigned short, int[][columna]);
GenerarMatriz(fila,columna, matriz);
return 0;
}
void GenerarMatriz (unsigned short fila, unsigned short columna, int matriz[][columna])
{
unsigned short i, j, inicio, limitecolumna, limitefila, tope, x;
inicio = 0; //desde donde comienza a llenarse
limitecolumna = columna ;// donde comienza el desenso
limitefila = fila;
tope = fila * columna ;//hasta donde se llena, que es la cantidad de elementos
x = 1; //valores dentro de la matriz
i = 0 ;
while (x <= tope)
{
for(j = inicio; j < limitecolumna ; j++ )
{
matriz[i][j] = x++;
/*x++;*/
}
for(i = inicio + 1 ; i < limitefila ; i++)
{
matriz[i][j-1]= x++;
/*x++;*/
}
for (j = limitecolumna - 1 ; j > inicio ; j--)
{
matriz[i-1][j-1]= x++;
/*x++;*/
}
for (i = limitefila - 1; i > inicio + 1 ; i--)
{
matriz[i-1][j]= x++;
/*x++;*/
}
inicio++;
limitecolumna --;
limitefila--;
}
for (i =0 ; i < fila ; i++){
printf("\n");
for (j = 0; j < columna ; j++)
printf("%i\t", matriz[i][j]);
}
}
Suscribirse a:
Entradas (Atom)
No hay comentarios:
Publicar un comentario