#include <stdio.h>
/*Gioco del Quadrato magico */
int somma_righe(int [][100],int ,int );
int somma_colonne(int [][100],int ,int );
int somma_prim_diagonale(int [][100],int ,int );
int somma_secd_diagonale(int [][100],int ,int );
//int confronto(int [][100],int , int );
int main()
{
int n,m;
int i,j;
int somm_righ, somm_coln,som_p_dg,som_s_dg;
int a[10][10];
//Dimensionamento Matrice
printf("Inserire le dimensioni del quadrato:\n");
scanf("%d %d",&n,&m);
//Inserimento numeri nell' array
printf("Inserire i numeri:\n");
for (i=0;i<n;i++)
{
for (j=0;j<m;j++)
{
scanf("%d",&a[i][j]);
}
}
//Stampa dell'array
for (i=0;i<n;i++)
{
printf("\n");
for (j=0;j<m;j++)
{
printf("|%d|",a[i][j]);
}
}
//Chiamata delle function
somm_righ=somma_righe(a[i][j],n,m);
somm_coln=somma_colonne(a[i][j],n,m);
som_p_dg=somma_prim_diagonale(a[i][j],n,m);
som_s_dg=somma_secd_diagonale(a[i][j],n,m);
if((somm_righ==som_p_dg)&&(somm_coln==somm_righ)&&(somm_coln==som_p_dg)
&&(somm_righ==som_s_dg)&&(somm_coln==som_s_dg))
{
return 1;
printf("Il quadrato e'magico",somm_righ);
}
else
{
return 0;
printf("Il quadrato non e'magico",somm_coln);
}
}
int somma_righe(int p_array[][100],int n, int m)
{
int i,j;
int som_r=0;
for (int i = 0; i < n;i++)
{ som_r=0;
for (int j = 0; j < m;j++)
{
som_r=som_r+p_array[i][j];
}
}
return som_r;
}
int somma_colonne(int s_array[][100],int n,int m)
{
int i,j;
int som_c=0;
for (int i = 0; i < m;i++)
{ som_c=0;
for (int j = 0; j < n;j++)
{
som_c=som_c+s_array[i][j];
}
}
return som_c;
}
int somma_prim_diagonale(int t_array[][100],int n ,int m )
{
int somm_p_diag=0;
int i,j;
for (int i = 0; i < n;i++)
{ somm_p_diag=0;
for (int j = 0; j < m;j++)
{
if (i==j)
{
somm_p_diag=somm_p_diag+t_array[i][j];
}
}
}
return somm_p_diag;
}
int somma_secd_diagonale(int t_array[][100],int n,int m)
{
int i,j;
int som_s_diag=0;
for(i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
if (i + j == n - 1)
som_s_diag = som_s_diag + t_array[i][j];
}
}
return som_s_diag;
}