Amélioration possible d'un bout de code
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)
Code:
1 2 3 4 5 6 7 8 9 10 11 12
Le résultat du code sera:
Code:
10 11 12 7 8 9 4 5 6 1 2 3
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:
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;
} |
Je voulais donc savoir si il y a des optimisations possibles pour arriver au même résultat. Merci d'avance :)