Inverser 2 nombres par 2 nombres

cobra176 Messages postés 86 Date d'inscription mercredi 1 novembre 2000 Statut Membre Dernière intervention 21 janvier 2009 - 6 janv. 2005 à 16:47
Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 - 6 janv. 2005 à 22:36
j'ai un programme qui m'inverser ma suite de chiffres
exemple = 123456 j'obtiens 654321
alors que je veux 563412

voici mon code ou es que je me trompe

#include <stdio.h>
main()
{
char caract;
char fullpath[260];
int i,j,longueur_txt_2;
char texte_1 [500];
char texte_2 [500];
char echange;
printf ("jour\n");
gets (texte_1);
strcpy(texte_2,texte_1);
longueur_txt_2 = strlen (texte_2);
j = longueur_txt_2 - 1;
for ( i=0 ; i<=(longueur_txt_2-1)/2 ; i= i +1)
{
echange = texte_2[j];
texte_2[j] = texte_2[i];
texte_2[i] = echange;
j = j-1;
}
puts("\ntexte 1 :\n");
puts(texte_1);
puts("\ntexte 2:\n");
strcpy(fullpath, "in");
strcat(fullpath, texte_2);
puts(fullpath);
printf("\nApuyer sur retour.");
fflush(stdin);
scanf("%c",&caract);
}

2 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
6 janv. 2005 à 17:19
boucle à modifier :

longueur_txt_1 = strlen(texte_1);
for(i=0; i<longueur_txt_1; i+=2)
{
if(i+1<longueur_txt_1)
{
texte_2[i] = texte_1[longueur_txt_1-i-2];
texte_2[i+1] = texte_1[longueur_txt_1-i-1];
}
else
{
texte_2[i] = texte_1[longueur_txt_1-i-1];
}
}
texte_2[longueur_txt_1] = '\0';

si tu rentre 1234567 tu aura 6745231 (peut-être pas exactement ce que tu attentd, à toi de modifier le cas impair)
0
Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 2
6 janv. 2005 à 22:36
Salut,

une fonction qui ressemble à ce que tu veux :



void inverser( char* str1 )

{

char* str2 = str1 + strlen( str1 );

while( str1 < str2 )

{

char tmp = *--str2;

*str2 = *str1;

*str1++ = tmp;

}

}



Tu peux remplacer le void par un char* qui correspond à str1 en entrée

pour afficher facilement le résultat.

Ma participation à la saturation du net:
http://hylvenir.free.fr
0
Rejoignez-nous