El problema es el siguiente: yo entiendo que hay que poner cada número en el orden que se va solucionando... es decir primero el 1 en su lugar respectivo... el 2 en su lugar respectivo... el 3 en su lugar respectivo.. el 4 en su lugar respectivo... etc.. si es asi como se hace que yo lo unico que puedo hacer es que me muestre pero de linea en linea no de uno en uno... el codigo es el siguiente..
Código
#include <iostream> #include <stdio.h> #include <windows.h> #include <conio.h> #define r( a, N ) ( (a)<0 ? N+(a)%N : ( (a)>=N ? (a)%N : (a) ) ) int main() { { int cuadrado[17][17],a,b,n,N; do{ cout<<"Ingrese el orden ( impar entre 3 y 17 ): " ; cin>>N; }while( !(N%2)); cout<<"Cuadrado Mágico de orden :"<<N; for(a=0;a<N;a++){ for(b=0;b<N;b++){ cuadrado[a][b]=0;} } for( a=N/2,b=0,n=1; n<=N*N; ) if(!cuadrado[a][b] ) cuadrado[a][b] = n++, a=r(a+1,N), b=r(b-1,N); else a=r(a-1,N), b=r(b+2,N); for(b=0;b<N;b++) { cout << endl; for(a=0;a<N;a++) cout <<" | "<< cuadrado[a][b] << " | "; Sleep(500); } } getch (); }
GRACIAS...