Pongo el codigo.Saludos
Código:
#include <conio.h> #include <stdio.h> main () { int na; printf("Introduzca un número"); scanf("%d",&na); array(na); getch(); } //---------------- array(int na) { int t[na][na],f,c,a,conta; for (f=0;f<na;f++) //inicializo el vector { for (c=0;c<na;c++) { t[f][c]=0; } } c=(na-1)/2; for(conta=2;conta<=na*na;conta++) // se repite el bucle hasta que el contador sea igual al número insertado por 2 { if(conta<=na) //si el contador es menor o igual que el numero insertado fila anterior siguiente columna { f=f-1; c=c+1; t[f][c]=conta; } else if(conta>na &&(conta-1)%na!=0)//si el contador es mayor que el numero insertado { f=f-1; //y restandole 1 es no es multiplo de 3 fila anterior siguiente columna c=c+1; t[f][c]=conta; } else if(conta>na &&(conta-1)%na==0)//si el contador es mayor que el numero insertado { //y restandole 1 es multiplo de 3 siguiente fila misma columna f=f+1; t[f][c]=conta; } } for (f=0;f<na;f++)//se muestra el array { for (c=0;c<na;c++) { a=(na-1)/2; //para que el 1 estè arriba y en el centro t[0][a]=1; printf("%d",t[f][c]); } printf("\n"); } }