CodesC/ExosEtud/4_3.c

147 lines
2.7 KiB
C
Raw Permalink Normal View History

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