Un programa que realice un cuadro magico
necesito ayuda, quiero realizar un programa que realice un cuadro magico por ejemplo ingresar una matriz de n*n y la suma de las columnas,filas den 15 y en diagonal tambien
una preguntita : tu quieres revizar si una matriz dada es cuadrado magico ?
O lo que necesitas es crear este cuadrado ?
En este caso la matriz tiene que ser de orden 3 o puede ser mayot.
O lo que necesitas es crear este cuadrado ?
En este caso la matriz tiene que ser de orden 3 o puede ser mayot.
Te mando un programa que construye cuadrados magicos de orden impar.
Lo encontre en el interner (el guru programador)
Lo encontre en el interner (el guru programador)
Me olvide copiar el programa :
#include <iostream.h>
#include <iomanip.h>
void cuadrado(int a[12][12], int, int);
int main(){
int cubo[12][12]={0};
int numero;
cout<<"Escribe un numero impar entre 3 y 11 : ";
cin>>numero;
cuadrado(cubo,12, numero);
cout << endl << endl;
for(int i=1;i<=numero;i++){
for(int j=0;j<numero;j++)cout << setw(4) << cubo[i][j]<<" ";
cout<<endl;
}
return 0;
}
void cuadrado(int cubo[12][12], int a, int numero){
cubo[0][numero]=1;
int r=numero/2;
int s=1;
cubo[s][r]=1;
for(int t=2;t<=numero*numero;++t){
if(cubo[s-1][r+1]==0)cubo[s-=1][r+=1]=t;//esto revisa si ya esta libre la casilla
else cubo[s+=1][r]=t; //y posiciona el numero en su casilla debida
if(s==0){s=numero; cubo[s][r]=t;}
if(r==numero){r=0; cubo[s][r]=t;}
}
}
#include <iostream.h>
#include <iomanip.h>
void cuadrado(int a[12][12], int, int);
int main(){
int cubo[12][12]={0};
int numero;
cout<<"Escribe un numero impar entre 3 y 11 : ";
cin>>numero;
cuadrado(cubo,12, numero);
cout << endl << endl;
for(int i=1;i<=numero;i++){
for(int j=0;j<numero;j++)cout << setw(4) << cubo[i][j]<<" ";
cout<<endl;
}
return 0;
}
void cuadrado(int cubo[12][12], int a, int numero){
cubo[0][numero]=1;
int r=numero/2;
int s=1;
cubo[s][r]=1;
for(int t=2;t<=numero*numero;++t){
if(cubo[s-1][r+1]==0)cubo[s-=1][r+=1]=t;//esto revisa si ya esta libre la casilla
else cubo[s+=1][r]=t; //y posiciona el numero en su casilla debida
if(s==0){s=numero; cubo[s][r]=t;}
if(r==numero){r=0; cubo[s][r]=t;}
}
}
