Inverser un tableau

Résolu/Fermé
Sabetodo Messages postés 120 Date d'inscription samedi 1 mars 2008 Statut Membre Dernière intervention 18 août 2010 - 20 déc. 2008 à 13:23
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 2 mars 2013 à 11:07
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!

5 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
20 déc. 2008 à 21:52
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 samedi 1 mars 2008 Statut Membre Dernière intervention 18 août 2010 3
21 déc. 2008 à 23:13
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835 > Sabetodo Messages postés 120 Date d'inscription samedi 1 mars 2008 Statut Membre Dernière intervention 18 août 2010
21 déc. 2008 à 23:32
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