63 lines
987 B
C
63 lines
987 B
C
|
#include <stdio.h>
|
||
|
|
||
|
#define N 3
|
||
|
|
||
|
int main () {
|
||
|
|
||
|
int A[N][N] = {1,2,3,4,5,6,7,8,9}; // Initialisation pas magique
|
||
|
|
||
|
// int A[N][N] = {4,2,3,2,3,4,3,4,2}; // Initialisation magique
|
||
|
|
||
|
char nom[10];
|
||
|
|
||
|
int i , j;
|
||
|
int magique = 1 ;
|
||
|
|
||
|
// diagonale
|
||
|
|
||
|
|
||
|
int sommed1 = 0, sommed2 = 0;
|
||
|
|
||
|
for(i=0;i<N;i=i+1)
|
||
|
{
|
||
|
sommed1 = sommed1 + A[i][i];
|
||
|
sommed2 = sommed2 + A[i][N-1-i];
|
||
|
}
|
||
|
|
||
|
if ( sommed1 != sommed2 )
|
||
|
{
|
||
|
magique = 0;
|
||
|
}
|
||
|
|
||
|
// hors diagonale
|
||
|
int sommeV , sommeH ;
|
||
|
i = 0 ;
|
||
|
while ( (magique != 0) && (i < N) )
|
||
|
{
|
||
|
sommeH = 0 ;
|
||
|
sommeV = 0 ;
|
||
|
|
||
|
for (j=0;j<N;j++)
|
||
|
{
|
||
|
sommeH = sommeH + A[i][j] ;
|
||
|
sommeV = sommeV + A[j][i] ;
|
||
|
}
|
||
|
//printf("%d %d %d %d \n",i,sommeV,sommeH,sommed1);
|
||
|
// getchar();
|
||
|
if ( sommeH != sommed1 || sommeV != sommed1 )
|
||
|
{
|
||
|
magique = 0;
|
||
|
}
|
||
|
i++;
|
||
|
|
||
|
}
|
||
|
|
||
|
if (magique == 1)
|
||
|
{
|
||
|
printf("carre magique = %d \n",sommed1);
|
||
|
} else {
|
||
|
printf("pas magique = \n");
|
||
|
}
|
||
|
|
||
|
}
|