Posez votre question Signaler

Inverser un tableau [Résolu]

Sabetodo 119Messages postés 1 mars 2008Date d'inscription 18 août 2010Dernière intervention - Dernière réponse le 24 déc. 2008 à 21:02
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!
Lire la suite 

Inverser un tableau »

14 réponses
Réponse
+2
moins plus
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 ;)
Sabetodo- 22 déc. 2008 à 14:45
ok,merci beaucoup pour ce que t'as fait. Je viens d'analyser ton code et je crois que marche.mais je l'ai pas encore compilé. Par contre j'ai fait ceci et marche tout a fait.


#include<stdio.h>
#define n 6
 main ()

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

     
    for(i=1;i<n;i++)
     {
        scanf("%d",&tab[i]);
     }
    
       for(i=1;i<n/2;i++)  
       {
           tampon=tab[i];
           tab[i]=tab[n-1-i];
           tab[n-1-i]=tampon;
        }
     
     for(i=1;i<n;i++)
      {
        printf("%d",tab[i]);
     }   
}   

Remarque:Dans mon programme j'inverse le premier avec le dernier,le seconde avec l'avant dernier ainsi de suite jusqu'a ce que tout le contenu du tableau soit inverse.
fiddy- 22 déc. 2008 à 14:55
Ton programme a un petit problème pour l'inversion des éléments car tu commences ta boucle for à 1.
Or en C le premier indice est 0.
for(i=0;...)
De plus, je ne vois pas l'intérêt d'initialiser ton tableau, si tu refais des scanf derrière.
Sinon, n'oublie pas que le prototype de main est :int main(void) s'il ne reçoit pas de paramètres.
Bien sûr, il ne faut pas oublier le return 0; final.
Cdlt
Sabetodo- 24 déc. 2008 à 21:02
T'as tout a fait raison mon cher!!!En fait, c'est en rédigeant le code que je me suis trompeé. Sinon ça va. J'en profite pour te souhaiter une bonne et heureuse année 2009 au cotes des tiens bien sur.
Ajouter un commentaire
Réponse
+1
moins plus
tiens voila mon idee :
main()
{
int tableau[n], debut = 0 , fin = n - 1, temp;//temp est une case temporaire pour faire l'echange
....
while(debut < fin)
{
temp = tableau[debut];
tableau[debut] = tableau[fin];
tableau[fin] = temp;
debut++;
fin--;
}
...
}
Sabetodo- 20 déc. 2008 à 14:21
pas mal, je vais essayer pour voir si ça peut marcher! merci pour ton aide.
Ajouter un commentaire
Réponse
+1
moins plus
j'ai oublie de mettre : #define n 10 en haut
sinon tu peux modifier la taille du tableau comme tu veux
Sabetodo- 20 déc. 2008 à 20:57
excuse-moi mon cher, mais je doute fort que ça puisse marcher.Je crois qu'il me faudrait plutot deux tableau pour faire ça.
Ajouter un commentaire
Réponse
+1
moins plus
*
mais je doute fort que ça puisse marcher
salut sabetodo
pour sa marche a merveille
Ajouter un commentaire
Réponse
+0
moins plus
je pense ke fiddy a donné la meillieur method
Ajouter un commentaire
Ce document intitulé « inverser un tableau » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?