Exercice langage C: Éléments en indice

Écrivez une fonction prenant un tableau T d'entiers et sa taille en paramètres. La fonction devra allouer un nouveau tableau T2T2 sera construit de la façon suivante: Les éléments de T d'indice pair seront placés dans T2 à l'indice donné par l'élément suivant de T. Exemple:

  • T[0] sera plaçé dans T2 à l'indice T[1],
  • T[2] sera plaçé dans T2 à l'indice T[3],
  • etc...

La fonction devra renvoyer un pointeur sur le premier élément de T2. On remarquera que la taille de T doit être paire. Si ce n'est pas le cas, la fonction devra renvoyer le pointeur 0 pour indiquer une erreur.

Exemple:

T:

4 2 8 0 7 1

T2:

8 7 4

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
int *indice(int *T, int taille) 
{
 
  if (taille % 2 != 0)
 
    return 0;  // erreur: taille n'est pas pair
 
    int *T2 = new int[taille / 2];
 
for (int i=0; itaille/2; i++) {
 
    if (T[i*2+1]  taille / 2 && T[i*2+1] >= 0)
 
      T2[T[i*2+1]] = T[i * 2];
 
    else
 
      return 0; // erreur: l'indice est en dehors du tableau
 
  }
 
  return T2;
 
}