cuadrado magico

DAVID
02 de Mayo del 2005
hola amigos del foro.. necesito hacer un programa que revise si una matriz es o no cuadrado magico.. ya tengo mi programa encaminado... alguien podria ayudarme a terminarlo??

desde ya gracias
salu2

Noel Solw
02 de Mayo del 2005
Estimado David, te envio el programa del cuadrado magico. Espero que te sea util.


// program eloy49.cpp
// cuadrado magico.
// 5/10/2004
// written in borland c++ - ver 4.5

#include <iostream.h>
#include <iomanip.h>

const int N = 10;

void Show(int a[][N],int dim)
{
for(int i = 0;i < dim;i++)
{
for(int j = 0;j < dim;j++)
cout << setw(7) << a[i][j];
cout << endl;
}
cout << endl;
} // SHOW

int CuadradoMagico(int a[][N],int dim)
{
int suma = 0,
sumb = 0,
i,j;
for(i = 0;i < dim;i++) // sumar diagonales
{
suma += a[i][i];
sumb += a[i][dim-i-1];
}
if(suma != sumb)
return 0;
for(i = 0;i < dim;i++) // sumar filas
{
sumb = 0;
for(j = 0;j < dim;j++)
sumb += a[i][j];
if(suma != sumb)
return 0;
}
for(j = 0;j < dim;j++) // sumar columnas
{
sumb = 0;
for(i = 0;i < dim;i++)
sumb += a[i][j];
if(suma != sumb)
return 0;
}
return 1;
} // CUADRADO MAGICO

void Process(int a[][N],int dim)
{
char *msg[] = {"no es un cuadrado magico.",
"es un cuadrado magico."};
Show(a,dim);
cout << "la matriz " << msg[CuadradoMagico(a,dim)] << endl << endl;
} // PROCESS

int main()
{
int a[N][N] = {{ 1,15,14, 4},
{12, 6, 7, 9},
{ 8,10,11, 5},
{13, 3, 2,16}},
b[N][N] = {{ 5, 4, 3},
{ 9, 1, 2},
{ 6, 8, 7}};
int dima = 4,
dimb = 3;
Process(a,dima);
Process(b,dimb);
cout << "end of program - good bye ! ! !n";
return 0;
} // MAIN