Inversion d elements dans un tableau

Bonjour

Je dois ecrire une fonction qui inverse l ordre des elements d’un tableau d entiers

prototypee de la sorte void ft_rev_int_tab (int *tab,int size);

le probleme est la realisation de l inversion des elements .

Merci pour vos eventuels explications.Je precise c est en C.

L’algorithme est simple
Soit n le nombre d’élément
tu met le nième élément dans un tampon, tu decalles le tableau, tu mets ton tapon dans le premier.

Tu échanges le premier et le dernier en utilisant un tampon, puis le deuxième et l’avant-dernier, etc. Au total, « le quotient du nombre d’éléments par 2 » fois.

tu multiplies le vecteur colonne par la matrice contenant des 1 en diagonale basgauche vers hautdroit

sinon plus sérieusement il doit y avoir un truc avec les piles :

  1. tu lis les éléments de ton tableau dans l’ordre et tu ajoutes à la pile
  2. tu dépiles ( donc en commeçant pas le dernier qui est n-1 jusqu’à 0 )

Bonjour

Peut-être comme ça :

il faudra pouvoir stocker une valeur temporaire.

Échange la valeur du premier avec la valeur du dernier :
  copie la valeur du premier élément dans l'élément temporaire
  copie la valeur du dernier élément dans le premier élément
  copie la valeur de l'élément temporaire dans le dernier élément

puis échange la valeur du deuxième avec la valeur de l'avant dernier,
etc.

======

indice début = 0
indice fin   = taille - 1

valeur temp = vide

tant que indice début est inférieur à indice fin, faire ce qui suit :
  valeur temp  = valeur à l'indice début
  valeur début = valeur à l'indice fin
  valeur fin   = valeur temp
  indice début = indice début + 1
  indice fin   = indice fin - 1
1 J'aime

BOnsoir MicP

encore une reponse qui tombe a pic je te sacre gouru :upside_down_face: :upside_down_face: :upside_down_face:

Sinon tu parcoure le tableau de 0 à (size/2)-1.
Pour chaque valeur i de tableau,
tampon=tab[i]
tab[i]=tab[size-i]
tab[size-i]=tab[i]

si size impair, tab[1+size/2] ne sera pas modifié.

sauf erreur de ma part c’est le moyen le plus rapide.