Pues eso, q tengo q hacer un cuadrado mágico de orden impar entre 3 y 11 (3,5,7,9 u 11 introducido por el usuario) y no tengo nidea de como implementarlo en C, a ver si me pudieseis ayudar, os dejo el enunciado por si alguien no sabe q es un cuadrado magico.
Escribe un programa en C que visualice un cuadrado mágico de orden impar n, comprendido
entre 3 y 11 (ej: 3, 5, 7...); el usuario introducirá por teclado el valor de n. Un cuadrado mágico
se compone de los números enteros comprendidos entre 1 y n². La suma de los números que figuran en
cada línea, cada columna y cada diagonal son idénticas. Por ejemplo, para n igual a 3, tendríamos
el siguiente cuadrado mágico:
8 1 6
3 5 7
4 9 2
Un método de construcción del cuadrado mágico consiste en situar el número 1 en el centro de la primera
línea, el número siguiente, el 2, en la casilla situada encima y a la derecha, y así sucesivamente.
Es preciso considerar que el cuadrado se cierra sobre sí mismo, es decir, la línea encima de la primera
es de hecho la última y la columna a la derecha de la última es la primera. Sin embargo, cuando la
posición del número caiga en una casilla ocupada, se elige la casilla situada debajo del número que
acaba de ser situado. (Prueba este método con el cuadrado anterior).
contruirlos, sé construirlos en un papel con un boli y siguiendo ese metodo de una casilla arriba y a la derecha, pero a la hora de hacer "automatizado" en C, pues no le encuentro la solucion, tened tb en cuenta que no puedo usar arrays porq se supone q aun no los hemos visto para ese ejercicio, vamos, este ejercicio está pensado para hacer uso solo de:
while
do-while
for
if,else if,else..
switch
solo puedo hacer uso de esas estructuras y con variables normales y corrientes. alguna idea? he dibujado los cuadrados a mano y he intentando encontrar alguna secuencia de algun tipo entre un numero y el siguiente dentro del cuadrado, pero por mas vueltas que le doy no encuentro ninguna solucion...
tampoco pido el codigo.. simplemente la idea, alguna secuencia a seguir,esta claro q debo encontrar un bucle de alguna manera... algo q me ayude a sacarlo, sabiendo eso podria intentar escribir yo el codigo... pero esq no se la solucion al problema.. no puedo implementar la solucion al problema..
gracias de antemano