bonjour,

j'essaye d'implémenter un carré magique, je crois que l'algorithme est correcte et que le probléme est au niveau de la boucle for(k.....)
parceque je l'ai compilé et il me met juste le premier élément qui est 2

merci d'avence pour votre aide

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 
#include<stdio.h>
#include<conio.h>
void main()
{
int i,j,n,p,q,k,x , d;
int t[20][20];
 
clrscr();
printf("entrez n");
scanf("%d",&n);
for(i=0;i<n;i++)
 
for(j=0;j<n;j++)
{
t[i][j]=0;
t[n/2+1][n/2]=1;
 
 
}
 
for(k=2;k<=9;k++)
{
i=n/2+1;j=n/2;
p=(i+1)%n; q=(j+1)%n;
if(t[p][q]==0)
{
t[p][q]=k;
i=p;
j=q;
}
 
else {
 i=(i+2)%n ;
}
 
}
 
 
 
    for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%d",t[i][j]);
 
 
}
printf("\n");
}
 
getch()  ;
}