Tri de table en C

Résolu/Fermé
limbergh Messages postés 658 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 29 juin 2010 - 3 févr. 2008 à 21:08
limbergh Messages postés 658 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 29 juin 2010 - 3 févr. 2008 à 22:30
Bonjour,
je suis débutant en c et j'ai un script que je n'arrive pas à résourdre.
En fait, j'introduis 6 nombres dans une table et j'imerais les inverser
mais il m'indique toujours les chiffres dans l'ordre...

Merci d'avance pour vos réponses

Limbergh

#include <stdio.h>
#include <stdlib.h>
#define Tmax 5

int main(int argc, char *argv[])
{
int T[Tmax];
int i=0;
int xtp;


for (i=0;i<=Tmax;i++)
{
scanf("%d", &T[i]);
}
for (i=0;i<=Tmax;i++)
{
printf("%d\t", T[i]);
}

for (i=0;i<=Tmax;i++)
{
xtp=T[i];
T[i]=T[Tmax-i];
T[Tmax-i]=xtp;
}
for (i=0;i<=Tmax;i++)
printf("%d\t", T[i]);

system("PAUSE");
return 0;
}

2 réponses

tatou_38 Messages postés 1928 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 5 août 2015 121
3 févr. 2008 à 22:01
Normal, ta boucle d'inversion est parcourue 2 fois :
par exemple le premier élément est permuté avec le dernier quand i=0 et repermuté quand i=Tmax.

Ta boucle d'inversion doit être : for ( i = Tmax<<2 ; i <= Tmax , i++ ) !!!

Attention si Tmax est pair ou impair.
0
limbergh Messages postés 658 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 29 juin 2010 140
3 févr. 2008 à 22:30
merci
0