38 votes

Inverser un tableau sans utiliser l'itération

Une question m'a été posée aujourd'hui et je ne crois pas que ce soit possible, mais je peux me tromper ou j'y pense trop. Comment inverser un tableau sans utiliser l'itération en C ?

Je pense que c'est impossible parce que le tableau peut avoir n'importe quelle taille et qu'aucun programme C ne peut être exprimé avec ce genre de support en tête sans utiliser une forme d'itération.

0voto

Monis Majeed Points 111
   #include<stdio.h>

   void rev(int *a,int i,int n)
  {

if(i<n/2)
{
    int temp = a[i];
    a[i]=a[n-i-1];
    a[n-i-1]=temp;
    rev(a,++i,n);
 }
}
int main()
    {
    int array[] = {3,2,4,5,6,7,8};
   int len = (sizeof(array)/sizeof(int));
   rev(array,0,len);    
   for(int i=0;i<len;i++)
   {
    printf("\n array[%d]->%d",i,array[i]);
  }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X