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();
  }

3 comentarios:

  1. y para quitar lo de <1 1> que parte del código tendria que borrar??

    ResponderEliminar
  2. Solo 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

    ResponderEliminar