Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- int main (void)
- {
- unsigned short fila, columna ;
- printf ("Ingresar cantidad de filas: n");
- scanf("%hd", &fila);
- printf("Ingresar cantidad de columnas: n");
- scanf("%hd", &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 ;
- /*La matriz se llena con 4 for, dos para filas y dos para columnas. Los primeros dos for empiezan cargando la primera fila y la ultima columna. Los otros dos cargan cargan desde la ultima fila hacia la ultima columna. Los for no estan anidados, el while debe ejecutarse hasta llenar la matriz*/
- 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("%it", matriz[i][j]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement