CodesC/TP5/carre2.c

63 lines
987 B
C
Raw Normal View History

2023-11-10 11:51:13 +00:00
#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");
}
}