147 lines
2.7 KiB
C
147 lines
2.7 KiB
C
//CARRÉ MAGIQUE
|
|
|
|
/*
|
|
//Question 1
|
|
#include <stdio.h>
|
|
int main(){
|
|
int tab[3][3]={{4,0,5},{4,3,2},{1,6,2}};
|
|
int i,j;
|
|
for (i=0;i<3;i++){
|
|
for (j=0;j<3;j++){
|
|
printf("%d\t",tab[i][j]);
|
|
}
|
|
printf("\n");
|
|
}
|
|
}
|
|
|
|
|
|
//Question 2
|
|
#include <stdio.h>
|
|
int main(){
|
|
int x,y,z;
|
|
int i,j;
|
|
puts("Valeur de x=");
|
|
scanf("%d",&x);
|
|
puts("Valeur de y=");
|
|
scanf("%d",&y);
|
|
puts("Valeur de z=");
|
|
scanf("%d",&z);
|
|
int magic[3][3]={{(x+y),(x-y+z),(x-z)},{(x-y-z),x,(x+y+z)},{(x+z),(x+y-z),(x-y)}};
|
|
|
|
for (i=0;i<3;i++){
|
|
for (j=0;j<3;j++){
|
|
printf("%d\t",magic[i][j]);
|
|
}
|
|
printf("\n");
|
|
}
|
|
}
|
|
|
|
//Question 3
|
|
#include <stdio.h>
|
|
int main(){
|
|
int i,j;
|
|
int tab[3][3]={{4,0,5},{4,3,2},{1,6,2}};
|
|
int cte=(tab[0][0])+(tab[0][1])+(tab[0][2]);
|
|
int test=0;
|
|
printf("Valeur de cte=%d\n",cte);
|
|
|
|
for (i=0;i<3;i++){
|
|
for(j=0;j<3;j++){
|
|
test=test+(tab[i][j]);
|
|
printf("Valeur de test=%d\n",test);
|
|
}
|
|
if (test!=cte) {
|
|
puts("Ce n'est pas un carre magique");
|
|
break;
|
|
}
|
|
test=0;
|
|
}
|
|
for (j=0;j<3;j++){
|
|
for(i=0;i<3;i++){
|
|
test=test+(tab[i][j]);
|
|
printf("Valeur de test=%d\n",test);
|
|
}
|
|
if (test!=cte) {
|
|
puts("Ce n'est pas un carre magique");
|
|
break;
|
|
}
|
|
test=0;
|
|
}
|
|
for (i=0;i<3;i++){
|
|
test=test+(tab[i][i]);
|
|
printf("Valeur de test=%d\n",test);
|
|
}
|
|
if (test!=cte) {
|
|
puts("Ce n'est pas un carre magique");
|
|
break;
|
|
}
|
|
printf("La constante magique est:%d\n",cte);
|
|
}
|
|
*/
|
|
|
|
//Question 4 et 5
|
|
#include <stdio.h>
|
|
#define N 3
|
|
int main(){
|
|
int i,j;
|
|
int k=0;
|
|
//int tab[N][N];
|
|
// int A[N][N] = {1,2,3,4,5,6,7,8,9}; // Initialisation pas magique
|
|
|
|
int tab[N][N] = {4,2,3,2,9,4,3,4,2}; // Initialisation magique
|
|
//int tab[N][N]={{4,1,5},{3,3,1},{1,6,2}};
|
|
int test=0;
|
|
int sum[2*N+2]={0};
|
|
int flag=0;
|
|
|
|
//remplir un carre magique avec des valeurs au choix
|
|
/* for (i=0;i<N;i++){ */
|
|
/* for (j=0;j<N;j++){ */
|
|
/* printf("Choisir la valeur de a(%d,%d)\n",i,j); */
|
|
/* scanf("%d",&tab[i][j]); */
|
|
/* } */
|
|
/* } */
|
|
printf("______________\nVoici le carre magique:\n");
|
|
for (i=0;i<N;i++){
|
|
for (j=0;j<N;j++){
|
|
printf("%d\t",tab[i][j]);
|
|
}
|
|
printf("\n");
|
|
}
|
|
printf("______________\n");
|
|
|
|
//verification : est-ce un carre magique ?
|
|
for (i=0;i<N;i++){
|
|
sum[0]=sum[0]+tab[i][i];
|
|
sum[1]=sum[1]+tab[i][N-i-1];
|
|
printf("%d\t%d\n",sum[0],sum[1]);
|
|
}
|
|
if (sum[0]!=sum[1]){
|
|
flag=1;
|
|
}
|
|
if (flag==0){
|
|
for (i=0;i<N;i++){
|
|
sum[2+i]=0;
|
|
sum[3+i]=0;
|
|
|
|
if (flag==0){
|
|
for(j=0;j<N;j++){
|
|
sum[2+i]=sum[2+i]+tab[i][j];
|
|
sum[3+i]=sum[3+i]+tab[j][i];
|
|
printf("%d\t%d\n",sum[2+i],sum[3+i]);
|
|
}
|
|
if ((sum[2+i]!=sum[0])||(sum[3+i]!=sum[0])){
|
|
flag=1;
|
|
}
|
|
}else{
|
|
printf("Ce n'est pas un carre magique\n");
|
|
return 1;
|
|
}
|
|
}
|
|
printf("Valeur constante magique=%d\n",sum[0]);
|
|
return 1;
|
|
}else{
|
|
printf("Ce n'est pas un carre magique\n");
|
|
}
|
|
}
|