miércoles, 27 de junio de 2012
10. Cuadrado Mágico
/* Un cuadrado mágico 3 x 3 es una matriz 3 x 3 formada por números del 1 al 9 donde la suma de sus filas, sus columnas y sus diagonales son idénticas. Crear un programa que permita introducir un cuadrado por teclado y determine si este cuadrado es mágico o no. El programa deberá comprobar que los números introducidos son correctos, es decir, están entre el 1 y el 9.*/
#include "iostream"
#include "conio.h"
using namespace std;
int main()
{
int mat[4][4];
int n,i,j,aux,suma,cont;
cout<<" \n \n \t \t \t \tCuadrado Magico \n \n";
cout<<"\t \t Valores de 1 al 9 ( los numeros no se deben repitir)\n \n\n";
cout<<"\n \t \t \t \tINGRESE LA MATRIZ \n\n";
for (i=1;i<=3;i++)
{
for (j=1;j<=3;j++)
{
do
{ cout<<" \t \t \t \tValor "<<"("<<i;
cout<<" "<<j<<") ";
cin>>aux;
}
while(aux<1 || aux>9) ;
mat[i][j]=aux;
}
}
// Imprime la matriz
for (i=1;i<=3;i++)
{
cout<<"\n \t \t \t \t";
for (j=1;j<=3;j++)
{
cout<<mat[i][j];
cout<<"\t";
}
}
cont=0; aux=0;
//sumando filas
for (i=1;i<=3;i++)
{ suma=0;
for (j=1;j<=3;j++)
{
suma+=mat[i][j];
}
if(i==1)
{ aux=suma;
}
if(aux==suma)
{
cont++;
}
}
//Suma las columnas
for (i=1;i<=3;i++)
{ suma=0;
for (j=1;j<=3;j++)
{
suma+=mat[j][i];
}
if(aux==suma)
{
cont++;
}
}
//Suma las diagonales
suma=0;
suma+=mat[1][1];
suma+=mat[2][2];
suma+=mat[3][3];
if(aux==suma)
{ cont++;
}
suma=0;
suma+=mat[1][3];
suma+=mat[2][2];
suma+=mat[3][1];
if(aux==suma)
{
cont++;
}
if (cont==8)
{
cout<<"\n\n \t \t \t \t Es un cuadro magico";
}
else
{ cout<<"\n \n\t \t \t \t No es un cuadro magico";
}
getch();
}
Suscribirse a:
Enviar comentarios (Atom)
y para quitar lo de <1 1> que parte del código tendria que borrar??
ResponderEliminarSolo hay un error, la matriz que estas haciendo la haces de 16 [4][4] y debe de ser de [3][3] debido a que tomas en cuenta que la matriz será de 3*3
ResponderEliminarGg
ResponderEliminar