Files
Curso_de_Programacion_C/6. Arreglos multidimensionales/Programas/Programa 6.10/Programa 6.10.c
2022-11-16 17:55:35 -04:00

52 lines
1.0 KiB
C

#include <stdio.h>
/* Cuadrado mágico.
El programa genera un cuadrado mágico siguiendo los criterios enunciados
➥anteriormente. */
#define MAX 50
void Cuadrado(int[][MAX], int);
void Imprime(int[][MAX], int); /* Prototipos de funciones. */
void main(void)
{
int CMA[MAX][MAX], TAM;
do
{
printf("Ingrese el tamaño impar de la matriz: ");
scanf("%d", &TAM);
} while ((TAM > MAX || TAM < 1) && (TAM % 2));
/* Se verifica el tamaño del arreglo y el orden (impar) del mismo. */
Cuadrado(CMA, TAM);
Imprime(CMA, TAM);
}
void Cuadrado(int A[][MAX], int N)
/* Esta función se utiliza para formar el cuadrado mágico. */
{
int I = 1, FIL = 0, COL = N / 2, NUM = N * N;
while (I <= NUM)
{
A[FIL][COL] = I;
if (I % N != 0)
{
FIL = (FIL - 1 + N) % N;
COL = (COL + 1) % N;
}
else
FIL++;
I++;
}
}
void Imprime(int A[][MAX], int N)
/* Esta función se utiliza para escribir el cuadrado mágico. */
{
int I, J;
for (I = 0; I < N; I++)
for (J = 0; J < N; J++)
printf("\nElemento %d %d: %d", I + 1, J + 1, A[I][J]);
}