CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Palindrome en C : conseil

Oasis_its_good
Oasis_its_good
Niveau 7
23 janvier 2007 à 19:42:01

:salut:

Alors voila je suis sur un exo de C où je dois écrire un programme qui dit si les caractères ki sont entrés successivement au clavier forment un palindrome.
Càd un mot ki se lit de la meme façon des 2 sens (ex : LAVAL, ELLE, RADAR)

Bon, le prof veut kon fasse ça avec des listes chainées car on ne sait pas combien l´utilisateur va entrer de lettres.

Je demande juste un conseil :
je compte recopier une 1ère fois la liste dans une autre liste, mais à l´envers, puis comparer élément par élément les 2 listes.

Est-ce une bonne solution ou y´a-t-il + simple ?

:merci: !

Fvirtman
Fvirtman
Niveau 10
23 janvier 2007 à 19:52:57

Si ta liste est simplement chainée, ça me parait une bonne méthode.

Si ta liste est doublement chainée (si tu as le choix, fais ça), tu mets un pointeur sur le début, un pointeur sur la fin, et tu va vers le milieu en comparant a chaque fois, jusqu´a ce que les pointeurs soient égaux (nombre d´éléments impairs) ou que p1->next = p2 (nombre d´éléments impairs)

Oasis_its_good
Oasis_its_good
Niveau 7
23 janvier 2007 à 20:07:19

Ok.
J´avais prévu de choisir une liste simplement chainée, paske j´ai du mal à manipuler les listes doublement chainées.

Merci.

Oasis_its_good
Oasis_its_good
Niveau 7
23 janvier 2007 à 20:16:53

Juste une dernière chose.
Mon code pour la création d´une pile semble bon, mais pourtant il y´a un tt petit probleme c´est que le printf s´affiche 2 fois à l´exécution, mais sinon, la liste s´affiche bien

typedef struct Pelement *pelement;
struct Pelement {char c; pelement pred;};

pelement creerpile()
{pelement cour, der;
der=NULL;
do {cour=malloc(sizeof(*cour));
printf("\nEntrez un caractere : \n");
scanf("%c",&cour->c);
cour->pred=der;
der=cour;} while(der->c!=´!´);
return(der);}

Oasis_its_good
Oasis_its_good
Niveau 7
24 janvier 2007 à 00:39:56

Finalement j´ai réussi à faire le prog.

Y´a tjrs cette fonction creerpile ki a 1 ptit probleme, mais kan je tape le mot sans espaces et avec un ´!´ à la fin, le prog marche parfaitement.

C´est juset ke je comprend pas pkoi "Entrer un caractere" s´affiche 2 fois à chaque fois que j´entre un caractere... :-(

dnob700
dnob700
Niveau 10
24 janvier 2007 à 00:49:26

tes caractères, lorsque tu les entre, il faut que tu fasse entrée après chaque caractères.

Oasis_its_good
Oasis_its_good
Niveau 7
24 janvier 2007 à 14:47:01

Justement, quand je fais Entrée après chaque caractère, ca m´affiche en double, et ca fait que dans la liste chainée , un caractère sur 2 est "vide" donc le prog ne détecte pas les palindromes

Alors que quand je les entre sans espace ni entrée, ca affiche à la fin autant de Entrez caractere que le nombre de caracteres ke j´ai entré.
Mais ds ce cas, la liste est parfaitement lue, et le prog marche.

Enfin bon, le prog marche, j´vais pas m´en plaindre. :ok:

Jaod
Jaod
Niveau 1
24 janvier 2007 à 16:01:17

Ajoutes un flushall(); avant le scanf.

Oasis_its_good
Oasis_its_good
Niveau 7
24 janvier 2007 à 16:06:15

:merci:

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment