Autor
|
Tema: Cuadrado Mágico (Leído 4,909 veces)
|
Black Lotus
Desconectado
Mensajes: 26
|
Debo hacer un programa que resuelva un cuadrado mágico con las reglas noreste... y que el programa debe mostrar como resuelve el método, para ello debe de utilizar un retardo de medio segundo por cada número a mostrar 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.. #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...
|
|
|
En línea
|
|
|
|
Almapa
Desconectado
Mensajes: 111
|
El problema tiene fácil solución, si te fijas en la línea 30, debería haber una "," entre el "cout" y el "sleep" para que lo tenga en cuenta dentro del segundo bucle "for". Por lo tanto cambiando dicha línea ya saca número a número. Aquí está dicha línea corregida.
cout <<" | "<< cuadrado[a] << " | ", Sleep(500);
Un saludo
|
|
|
En línea
|
|
|
|
Black Lotus
Desconectado
Mensajes: 26
|
disculpa... gracias muchisimas gracias por eso...
pero ahora disculpa la pregunta.. lo que me dijiste vos era la solución? o es asi como yo comprendi el problema lo digo en la descripción de mi ejercicio antes del codigo...
|
|
|
En línea
|
|
|
|
Almapa
Desconectado
Mensajes: 111
|
Mmm mi respuesta es para mostrar la solución final elemento a elemento, pero no por orden de resolución. No había entendido bien tu pregunta, le echaré un vistazo.
|
|
|
En línea
|
|
|
|
Almapa
Desconectado
Mensajes: 111
|
Mira a ver que te parece esta solución. Aunque no es muy agradable ver "0" durante la resolución puede hacer que te saque "*" o "-" en lugar de los 0. #include <iostream> #include <stdio.h> #include <windows.h> #include <conio.h> using namespace std; #define r( a, N ) ( (a)<0 ? N+(a)%N : ( (a)>=N ? (a)%N : (a) ) ) int main() { { int cuadrado[17][17],a,b,n,N,i,j; 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); system("cls"); cout<<"Cuadrado Mágico de orden :"<<N; for(i=0;i<N;i++) { cout << endl; for(j=0;j<N;j++)cout <<" | "<< cuadrado[j][i] << " | "; } Sleep(500); } } getch (); }
|
|
« Última modificación: 15 Marzo 2013, 01:35 am por Almapa »
|
En línea
|
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Problema con cuadrado mágico [RESUELTO]
Programación C/C++
|
bigfu
|
7
|
12,850
|
14 Enero 2016, 02:11 am
por Dayciber
|
|
|
Programa en C sharp que genera un cuadrado magico , suma sus filas y columnas
.NET (C#, VB.NET, ASP)
|
david_quiroz19
|
0
|
9,429
|
13 Noviembre 2011, 00:15 am
por david_quiroz19
|
|
|
Aporte: Cuadrado Mágico de orden impar
Programación C/C++
|
dato000
|
2
|
12,392
|
22 Agosto 2019, 08:01 am
por TheSj
|
|
|
ayuda con area cuadrado
PHP
|
General Dmitry Vergadoski
|
2
|
4,518
|
2 Mayo 2013, 00:28 am
por #!drvy
|
|
|
Cuadrado Mágico
Programación C/C++
|
anaaaaaaa
|
3
|
7,208
|
7 Diciembre 2015, 16:37 pm
por ivancea96
|
|