salut ce code il concerne les magic carré est que l qu un peut m éxpliquer ce code étape par étape
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
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <stdio.h>
#include <stdlib.h>
#define N  100
 
int     a[N][N];
int     n;
 
void Init (int n)
{
    int i, j;
 
    for (i = 0 ; i < n; ++i)
        for (j = 0; j < n; ++j)
            a[i][j] = 0;
}
 
void Magique (int n)
{
    int i, j, k;
 
    i = n - 1; j = n / 2;
    for (k = 1; k <=  n * n; ++k) {
        a[i][j] = k;
        if ((k % n) == 0)
            i = i - 1;
        else {
            i = (i + 1) % n; 
            j = (j + 1) % n;
        }
    }
}
 
void Erreur (char s[])
{
    printf ("Erreur fatale: %s\n", s);
    return;
}
 
void Lire (int *n)
{
    printf ("Taille du carre' magique, svp?::  ");
    scanf ("%d", n);
    if ((*n <= 0) || (*n > N) || (*n % 2 == 0)) 
        Erreur ("Taille impossible.");
}
 
void Imprimer (int n)
{
    int i, j;
 
    for (i = 0; i < n; ++i) {
        for (j = 0; j < n; ++j) 
            printf ("%4d ", a[i][j]);
        printf ("\n");
    }
}
 
int main ()
{
    Lire(&n);
    Init(n);       /* - */
    Magique(n);
    Imprimer(n);
    system("pause");
    return 0;
}