Bonsoir,
Voila j'ai coder ce petit morceau de code dont le but est d'avoir un inverse symétrique 3 par 3 dans un tableau, je ne sais pas si je me suis bien expliqué, je vais donc vous donner un exemple qui seras beaucoup plus parlant:
Admettons le tableau suivant: (chaque chiffre représente une case)
Le résultat du code sera:
Code : Sélectionner tout - Visualiser dans une fenêtre à part 1 2 3 4 5 6 7 8 9 10 11 12
J'espère que ceci est déjà plus clair, mais si besoin n'hésitez surtout pas à demander plus de détails. Le code est donc celui-ci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part 10 11 12 7 8 9 4 5 6 1 2 3
Je voulais donc savoir si il y a des optimisations possibles pour arriver au même résultat. Merci d'avance
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 #include <stdio.h> #include <stdlib.h> int main (void) { int *Buffer; int *newBuffer; int d = 0; int f = 11; int i; Buffer = malloc (12 * sizeof (int)); newBuffer = malloc (12* sizeof (int)); if (Buffer != NULL || newBuffer != NULL) { Buffer[0] = 1; Buffer[1] = 2; Buffer[2] = 3; Buffer[3] = 4; Buffer[4] = 5; Buffer[5] = 6; Buffer[6] = 7; Buffer[7] = 8; Buffer[8] = 9; Buffer[9] = 10; Buffer[10] = 11; Buffer[11] = 12; while (d < 12) { newBuffer[d] = Buffer[f-2]; newBuffer[d+1] = Buffer[f-1]; newBuffer[d+2] = Buffer[f]; f -= 3; d += 3; } for (i=0;i<12;i++) { printf ("%d ", newBuffer[i]); } printf ("\n"); free (Buffer); free (newBuffer); } else { printf ("Allocation memoire impossible"); free (Buffer); free (newBuffer); exit (1); } return 0; }![]()
Partager