Inverser un tableau

Résolu
Sabetodo Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
salut les gars!!je voulais inverser le contenu d'un tableau de telle sorte que le premier élément soit le dernier et le dernier soit le premier.Je sais que le tri serait la méthode idéale, mais je l'ai essaye dans u premier temps et je suis bloque! J'aimerais que qqn me donne juste des astuces pour y parvenir!
A voir également:

5 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Salut,
Si son programme marche. Pas besoin de deux tableaux ;)
T'inverse le premier élément avec le dernier, puis le second avec l'avant-dernier etc.
Pas besoin de tableau supplémentaire ;)
2
Sabetodo Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   3
 
salut fiddy, j'ai tenu compte de ce que tu ma dit et je viens de modifier mon prrogramme en utilisant la boucle.Lorsque je le compile, ça marche. mais quand je l'execute il ne m'affiche rien a l'ecran. Voici le code:
#include<stdio.h>
 main ()

{ int  i,tampon=0,tab[6]={6,8,1,2,3,8};

     
    for(i=1;i<6;i++)
     {
        scanf("%d",&tab[i]);
     }
    
       for(i=1;i<3;i++)  
       {
           tampon=tab[i];
           tab[i]=tab[5-i];
           tab[5-i]=tampon;
        }
     
     for(i=1;i<6;i++)
      {
        printf("%d",tab[i]);
     }   
}   


NB: Étape 0 : on échange t[0] et t[5]
Étape 1 : on échange t[1] et t[4]
Étape 2 : on échange t[2] et t[3]

    
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846 > Sabetodo Messages postés 120 Date d'inscription   Statut Membre Dernière intervention  
 
Faut plutôt s'inspirer du premier programme.
Teste :
#include <stdio.h>

int main(void){
    int tab[]={1,2,3,4,5,6,7,8,9,10};
    const size_t n=sizeof tab/sizeof *tab;

    int debut=0,fin=n-1;
    int tmp;

    while(debut<fin){
        tmp=tab[debut];
        tab[debut]=tab[fin];
        tab[fin]=tmp;
        debut++;
        fin--;
    }

    for(int i=0;i<n;i++)
        printf("%d ",tab[i]);

    puts("");

    return 0;
}

Cdlt
0